Android - 布局详解之LinearLayout与RelativeLayout
本篇博文只针对LinearLayout与RelativeLayout
我们在新建一个布局文件时,一般遵循这样的思路:先确定该文件对应的界面中各个布局和控件的位置和大小,然后再来设置各个布局和控件的其他属性,如背景、文字等。
android:layout_marginLeft | 设置该Layout距离父窗体左边缘的距离 |
android:layout_marginTop | 设置该Layout距离父窗体上边缘的距离 |
android:paddingLeft | 设置该Layout中的内容距离该Layout左边缘的距离 |
android:paddingTop | 设置该Layout中的内容距离该Layout上边缘的距离 |
android:paddingRight | 设置该Layout中的内容距离该Layout右边缘的距离 |
android:paddingBottom | 设置该Layout中的内容距离该Layout下边缘的距离 |
接下来分析,LinearLayout与RelativeLayout的属性有何不同?在使用时怎么选择?
/*** A Layout that arranges its children in a single column or a single row. The direction of * the row can be set by calling {@link #setOrientation(int) setOrientation()}. * You can also specify gravity, which specifies the alignment of all the child elements by* calling {@link #setGravity(int) setGravity()} or specify that specific children * grow to fill up any remaining space in the layout by setting the <em>weight</em> member of* {@link android.widget.LinearLayout.LayoutParams LinearLayout.LayoutParams}.* The default orientation is horizontal.*/
//LinearLayout 将它的子布局(控件)排成一行或一列,可以调用setOrientation()方法来设置排列
//的方向,或者调用setGravity()方法 //来指定子布局(控件)的对齐方式,还可以设置weight的值
//来改变子布局(控件)的填充范围,默认排列方向是horizontal
public class LinearLayout extends ViewGroup {}
android:layout_marginLeft | 设置该控件距左边(无论是父控件还是兄弟控件)的长度 |
android:layout_marginTop | 设置该控件距上边(无论是父控件还是兄弟控件)的长度 |
android:layout_marginRight | 设置该控件距右边(无论是父控件还是兄弟控件)的长度 |
android:layout_marginBottom | 设置该控件距下边(无论是父控件还是兄弟控件)的长度 |
layout_weight的深刻理解
/*** A Layout where the positions of the children can be described in relation to each other or to the* parent.*/
//在RelativeLayout中,可以依据一个子布局(控件)与其他子布局(控件)
//或者父窗体的相对位置关系来描述它的位置
public class RelativeLayout extends ViewGroup {}
android:layout_centerHrizontal | 水平居中 |
android:layout_centerVertical | 垂直居中 |
android:layout_centerInparent | 相对于父元素完全居中 |
android:layout_alignParentBottom | 贴紧父元素的下边缘 |
android:layout_alignParentLeft | 贴紧父元素的左边缘 |
android:layout_alignParentRight | 贴紧父元素的右边缘 |
android:layout_alignParentTop | 贴紧父元素的上边缘 |
android:layout_below | 在某元素的下方 |
android:layout_above | 在某元素的的上方 |
android:layout_toLeftOf | 在某元素的左边 |
android:layout_toRightOf | 在某元素的右边 |
android:layout_alignBaseline | 本元素的baseline和给定元素的baseline对齐 |
android:layout_alignTop | 本元素的上边缘和某元素的的上边缘对齐 |
android:layout_alignLeft | 本元素的左边缘和某元素的的左边缘对齐 |
android:layout_alignBottom | 本元素的下边缘和某元素的的下边缘对齐 |
android:layout_alignRight | 本元素的右边缘和某元素的的右边缘对齐 |
android:layout_marginLeft | 设置该控件距左边(无论是父控件还是兄弟控件)的长度 |
android:layout_marginTop | 设置该控件距上边(无论是父控件还是兄弟控件)的长度 |
android:layout_marginRight | 设置该控件距右边(无论是父控件还是兄弟控件)的长度 |
android:layout_marginBottom | 设置该控件距下边(无论是父控件还是兄弟控件)的长度 |
转载于:https://www.cnblogs.com/hwgt/p/5414401.html
Android - 布局详解之LinearLayout与RelativeLayout相关推荐
- android rotate 动画,Android RotateAnimation详解
RotateAnimation旋转坐标系为以旋转点为坐标系(0,0)点.x轴为0度,顺时针方向旋转一定的角度. 1.RotateAnimation(fromDegrees, toDegrees) [默 ...
- Android开发重点难点1:RelativeLayout(相对布局)详解
前言 啦啦啦~博主又推出了一个新的系列啦~ 之前的Android开发系列主要以完成实验的过程为主,经常会综合许多知识来写,所以难免会有知识点的交杂,给人一种混乱的感觉. 所以博主推出"重点难 ...
- Android UI详解之布局管理器(一)
Android UI详解之布局管理器 一.布局管理器 ①顶级父类View ②子类GroupView ③AbsoluteLayout.FrameLayout.LinearLayout.GridLayou ...
- 【Android】入门——六大布局详解
目录 一.LinearLayout布局 二.RelativeLayout布局 三.MyLayout布局(自定义ViewGroup) 四.FrameLayout布局 五.TableLayout布局 六. ...
- android中帧布局效果,布局之FrameLayout(帧布局)详解
New UI-布局之FrameLayout(帧布局)详解 --转载请注明出处:coder-pig,欢迎转载,请勿用于商业用途!本节引言:FrameLayout(帧布局)可以说是六大布局中最为简单的一 ...
- Android Preference详解之初识Preference及Preference系(一)
Android Preference详解之初识Preference及Preference系(一) 转载:https://blog.csdn.net/google_huchun/article/deta ...
- Android开发详解:第4章《UI 控件》
Android开发详解:第4章<UI 控件> 控件是Android程序设计的基本组成单位,通过使用控件可以高效地开发Android应用程序.所以熟练掌握控件的使用是合理.有效地进行Andr ...
- Android Drawable 详解
Android Drawable 详解 @(Technical)[Android, Drawable, StateListDrawable, LayerDrawable, AnimationDrawa ...
- qt布局嵌套_QDockWidget嵌套布局详解-实现Visual Studio布局
概述 许多工程软件,如Qt Creator,VS,matlab等,都是使用dock布局窗口,这样用户可以自定义界面,自由组合窗口. Qt的嵌套布局由QDockWidget完成,用Qt Creator拖 ...
最新文章
- web从零单排,做一个简单的幻灯片
- 偏移出来的数据不准_独家解读!京东高可用分布式流数据存储的架构设计
- 遍历 HashSet 的方法
- 第七期:Python 从入门到精通:一个月就够了!
- 性能调优:理解Set Statistics Time输出
- 【python】 time模块和datetime模块详解 【转】
- HOG特征(Histogram of Gradient)总结
- 统计网站 同一IP访问的次数及IP地址
- ambari安装的各组件的目录
- matlab file(i).name,求大佬帮忙备注一下,有点看不懂,详细一点
- csv转vcf格式网页工具-快速导入手机通讯录
- 显示器接口_显示器接口都有哪些?
- 深度学习之语义分割(SegNet)
- WF本质论 OpenSesame 芝麻开门代码
- 纤亿通带你认识和正确使用SFP光模块
- 微信网站域名如何做防封和防屏蔽技术
- c语言厘米换算分米程序设计,厘米和分米换算(米和厘米换算)
- 苹果6电池价格_苹果8plus电池不耐用,苹果8p换电池价格
- 程序员如何一句话教老板做事?“我先下班了,你可要加把劲啊”
- 微速(微锐) 与 打码工作
热门文章
- LeetCode 1800. 最大升序子数组和
- 03.结构化机器学习项目 W2.机器学习策略(2)
- LeetCode 1222. 可以攻击国王的皇后(set)
- LeetCode 167. 两数之和 II - 输入有序数组(双指针)
- 什么叫诚实_他爱不爱你,身体最诚实
- linux安装g++编译器_Ubuntu Desktop下配置Rosetta安装教程
- GBDT是如何成为推荐系统顶级工具人的?
- 吴恩达发起新型竞赛范式!模型固定,只调数据?!
- 互联网企业安全之端口监控
- React Native工程中TSLint静态检查工具的探索之路