Android布局问题基本理解
2015-08-13 14:11
225 查看
初学Android的时候,经常由于布局名字相似,功能差不多容易弄混,今天来简单的解释一下,加深理解。主要讲RelativeLayout。
1、相对于父控件的摆放
android:layout_alignParentTop 如果为true,将该控件的顶部与其父控件的顶部对齐;
android:layout_alignParentBottom 如果为true,将该控件的底部与其父控件的底部对齐;
android:layout_alignParentLeft 如果为true,将该控件的左部与其父控件的左部对齐;
android:layout_alignParentRight 如果为true,将该控件的右部与其父控件的右部对齐;
举个例子:android:layout_alignParentTop="true"
就是将这个控件与父控件的顶部对其,一般父控件为布局。
2、相对于父控件居中方式
android:layout_centerHorizontal
如果为true,将该控件的置于水平居中;
android:layout_centerVertical 如果为true,将该控件的置于垂直居中;
android:layout_centerInParent 如果为true,将该控件的置于父控件的中央;
android:layout_alignWithParentIfMissing
如果对应的兄弟元素找不到的话就以父元素做参照物;
用法与上相同
3、然后是控件相对于控件的摆放
android:layout_above 将该控件的底部置于给定ID的控件之上;
android:layout_below 将该控件的底部置于给定ID的控件之下;
android:layout_toLeftOf 将该控件的右边缘与给定ID的控件左边缘对齐;
android:layout_toRightOf 将该控件的左边缘与给定ID的控件右边缘对齐;
举个例子:android:layout_above="@+id/button1" 就是将这个控件置于“button1”这个控件之上。
4、控件相对于控件的摆放
android:layout_alignBaseline
将该控件的baseline与给定ID的baseline对齐;
android:layout_alignTop 将该控件的顶部边缘与给定ID的顶部边缘对齐;
android:layout_alignBottom 将该控件的底部边缘与给定ID的底部边缘对齐;
android:layout_alignLeft 将该控件的左边缘与给定ID的左边缘对齐;
android:layout_alignRight 将该控件的右边缘与给定ID的右边缘对齐;
举个例子:android:layout_alignTop="@+id/button1"
就是将这个控件与“button1”这个控件的顶部边缘对其(一般用于两个控件重合或者相交,还用于在嵌套布局中的位置摆放)。
其中有必要解释一下android:layout_alignBaseline
baseline的意思是基线,书写英语单词时为了规范书写会设有四条线,从上至下第三条就是基线。基线对齐主要是为了两个控件中显示的英文单词的基线对齐。
5、相对于父控件控件的偏移量
android:layout_marginTop 上偏移的值;
android:layout_marginBottom 下偏移的值;
android:layout_marginLeft 左偏移的值;
android:layout_marginRight
右偏移的值;
举例:android:layout_marginTop="5dp"
距离顶部(与其他控件间的距离)5dp
6、相对于控件自身的偏移量
android:paddingTop 上偏移的值;
and
android:paddingBottom 下偏移的值;
android:paddingLeft
左偏移的值;
android:paddingRight
右偏移的值;
例子:button按钮中文字显示的位置,如果偏移量一样可是设置android:padding="5dp"(控件内部的距离)
7、控件布局
android:gravity:
相对于当前控件
android:gravity="top"(类似android:paddingTop
的用法)
android:layout_gravity:相对于父控件
android:layout_gravity="top"(类似android:layout_marginTop
的用法)
这两个属性可选的值有:top、bottom、left、right、center_vertical、fill_vertical、center_horizontal、fill_horizontal、center、fill、clip_vertical。
总得来说,带有layout_基本都是相对于父控件,没有的就是当前控件。
1、相对于父控件的摆放
android:layout_alignParentTop 如果为true,将该控件的顶部与其父控件的顶部对齐;
android:layout_alignParentBottom 如果为true,将该控件的底部与其父控件的底部对齐;
android:layout_alignParentLeft 如果为true,将该控件的左部与其父控件的左部对齐;
android:layout_alignParentRight 如果为true,将该控件的右部与其父控件的右部对齐;
举个例子:android:layout_alignParentTop="true"
就是将这个控件与父控件的顶部对其,一般父控件为布局。
2、相对于父控件居中方式
android:layout_centerHorizontal
如果为true,将该控件的置于水平居中;
android:layout_centerVertical 如果为true,将该控件的置于垂直居中;
android:layout_centerInParent 如果为true,将该控件的置于父控件的中央;
android:layout_alignWithParentIfMissing
如果对应的兄弟元素找不到的话就以父元素做参照物;
用法与上相同
3、然后是控件相对于控件的摆放
android:layout_above 将该控件的底部置于给定ID的控件之上;
android:layout_below 将该控件的底部置于给定ID的控件之下;
android:layout_toLeftOf 将该控件的右边缘与给定ID的控件左边缘对齐;
android:layout_toRightOf 将该控件的左边缘与给定ID的控件右边缘对齐;
举个例子:android:layout_above="@+id/button1" 就是将这个控件置于“button1”这个控件之上。
4、控件相对于控件的摆放
android:layout_alignBaseline
将该控件的baseline与给定ID的baseline对齐;
android:layout_alignTop 将该控件的顶部边缘与给定ID的顶部边缘对齐;
android:layout_alignBottom 将该控件的底部边缘与给定ID的底部边缘对齐;
android:layout_alignLeft 将该控件的左边缘与给定ID的左边缘对齐;
android:layout_alignRight 将该控件的右边缘与给定ID的右边缘对齐;
举个例子:android:layout_alignTop="@+id/button1"
就是将这个控件与“button1”这个控件的顶部边缘对其(一般用于两个控件重合或者相交,还用于在嵌套布局中的位置摆放)。
其中有必要解释一下android:layout_alignBaseline
baseline的意思是基线,书写英语单词时为了规范书写会设有四条线,从上至下第三条就是基线。基线对齐主要是为了两个控件中显示的英文单词的基线对齐。
5、相对于父控件控件的偏移量
android:layout_marginTop 上偏移的值;
android:layout_marginBottom 下偏移的值;
android:layout_marginLeft 左偏移的值;
android:layout_marginRight
右偏移的值;
举例:android:layout_marginTop="5dp"
距离顶部(与其他控件间的距离)5dp
6、相对于控件自身的偏移量
android:paddingTop 上偏移的值;
and
android:paddingBottom 下偏移的值;
android:paddingLeft
左偏移的值;
android:paddingRight
右偏移的值;
例子:button按钮中文字显示的位置,如果偏移量一样可是设置android:padding="5dp"(控件内部的距离)
7、控件布局
android:gravity:
相对于当前控件
android:gravity="top"(类似android:paddingTop
的用法)
android:layout_gravity:相对于父控件
android:layout_gravity="top"(类似android:layout_marginTop
的用法)
这两个属性可选的值有:top、bottom、left、right、center_vertical、fill_vertical、center_horizontal、fill_horizontal、center、fill、clip_vertical。
总得来说,带有layout_基本都是相对于父控件,没有的就是当前控件。
相关文章推荐
- android: 横竖屏切换总结-布局改变和数据保存
- android短信验证码功能实现,包含按钮倒计时操作
- Ionic开发时,默认样式android和ios的一些不同
- 安卓设置自定义字体的解决方案
- Android service的全面总结
- Android Context 是什么?
- Android初体验
- Android Studio Tips -- 布局预览
- Android studio 下的 NDK 配置方法和注意事项
- android 自定义水平和圆形progressbar 只定义一些style就可以
- Android终止无限循环线程和程序退出时销毁线程
- Android终止无限循环线程和程序退出时销毁线程
- android 官方教程中文版
- Android之查看外部依赖jar的源码
- Android之手机闹钟
- Android DES AES MD5加密
- android 支持键盘导航
- android studio或intellij 编译项目时候报错
- android ndk 入门学习2
- Android如何快速打出100个渠道apk