10_Android线性布局(LinearLayout)的嵌套


1.线性布局(LinearLayout)的嵌套

2.使用layout_weight属性(合理分配父控件的空间)


 1.线性布局(LinearLayout)的嵌套

LinearLayout是Android最简单的一种布局方式,使用简单,而且LinearLayout还可以进行嵌套使用,有什么用?

在一个Activity嵌套LinearLayout以后,一个Activity中既可以有水平线性布局又可以同时拥有垂直线性布局,大大的增加了我们对界面的可操作性:

  • 下面这个Activity既不是咋一看是线性垂直布局,但是又有线性水平布局,那到底算什么布局呢?这就是线性嵌套布局(暂讨论线性布局,不讨论其他布局方式)。

  

提示:本程序相对复杂一点,故在附录直接给出Demo,已上的嵌套方法不是唯一的,只是举个例子,根据自己的逻辑推理可以有很多种嵌套方法; 

  • 简单的实例如下所示: 

例子:

  • 创建一个Android应用程序,命名为:S07_LinearLayout

  • 把默认的标签改成LinearLayout(线性布局),且为水平布局,背景色为绿色,大小匹配父控件,一个线性布局有且只有一个根标签,子标签的数量不限制,在根标签里面再创建一个子标签: 

  •  把子标签设置成线性垂直布局,大小包含内容,背景色为红色,然后在这个子标签中添加一个TextView.

  • 然后再增加一个TextView标签,然后看一下预览窗口,可以发现,里面的子标签果然是垂直布局的,而且在outline信息栏也有显示,当前XML文件控件的状态: 

  • 为了验证在最外一层(跟标签)LinearLayout是否是水平布局,把刚刚创建的子标签复制一份,放置于根标签的那一级目录,如下图所示: 

  • 在XML预览窗口可以发现,果然是呈水平摆放,,而且在右边的Outline的信息栏的图标也可以看出,总共有三个LinearLayout最外边的LinearLayout包含了两个LinearLayout,而且是可以展开的,跟文件夹很像,从图标的摆项也可以看出布局是水平还是垂直: 


2.使用layout_weight属性的要点:

1.子控件并未占满父控件所有空间

2.layout_weight的值用于指定空闲空间的分配比例

  • 此时当你指定这两个空间的layoutweight = 1,那么这控件将平分父控件所剩余的空间

  • 变成如下这种情况: 

用例子演示:

  • 新建一个项目,命名为:S07_Layout_weight

  • 修改布局文件为线性布局,宽度匹配父控件,高度包含内容,增加两个TextView控件,用不同的背景颜色区分: 

  • 如下图所示:绿色为控件一,蓝色为控件2,红色为剩余空间。 

  • 在TextView增加layout_weight属性,两个都为1,意思为分成两份,把剩余的控件平分给两个控件: 

  • 平分剩余空间后,如下图所示,再次提醒是平分剩余空间,而不是父控件的空间: 

  • 可以分成3份,把剩余空间分2/3给控件1,分1/3给控件2: 


 那么如果只是分配剩余空间那意义大吗?能指定分配整个父控件的空间吗?

答案肯定是能的。如果你想让控件一占整个父控件的2/3,让控件二占父控件的1/3,怎么做?

这里有一个技巧,就是设置这两个控件的layout_width为0dp,那是因为如果两个空间的控件占父控件的位置都是0dp,那父控件的位置全部就空出来了,这样一样,就可以去平分父控件的位置了.


附录: 

本博文Demo下载:https://github.com/zGuangYuan/Android- 

github的用法:点我查看

猜你喜欢

转载自blog.csdn.net/qq_36243942/article/details/81808833