Android:线性布局介绍,线性布局weight属性,线性布局微调参数gravity,线性布局divider

       

  

LinearLayout:线性布局

一、线性布局介绍

新建一个工程

 然后我们默认的布局,是相对布局,

 相对布局的意思是我的控件可以在里面随意放置

 那如果把这个RelativeLayout 改了呢?

不用这相对布局,而是用线性布局,

我们把代码都删掉

然后直接把 RelativeLayout 改成        LinearLayout

 现在我这个布局已经好了

我们再往里面添加东西,发现只能在一条横线上添加

如果我一个横线放满了,放下一排可以吗?

不可以

 这就是线性布局,之能在横线上存放。

那我现在希望变成竖线存放怎么办呢?

这就涉及到了  LinearLayout的属性  orientation

orientation:布局中组件的排列方式,有horizontal(水平,默认),vertical(竖直)两种方式

      

  我们修改一下代码

然后现在我们想把      hello  world 右面放也不行,只能跑到后面来

 这就是我们说的线性布局,要么是横线,要么是竖线,只有这两种情况

      

二、线性布局weight属性

该属性是用来等比例划分区域,

最简单的用法:要等比划分,分谁,谁为0,weight按比例即可

    

  我们开始的代码

在里面来一个线性布局 ,

因为它的父控件是一个相对布局,所以可以用        android:layout_centerInParent="true"

 运行一下

 框架

 现在的代码,结构

默认是水平方向上排布控件

加一句    android:orientation="horizontal"

 

 运行结果

 然后把    android:layout_height="35dp"      改成     android:layout_height="70dp"

然后再加一句              android:orientation="vertical"     把他切成两部分

 

运行一下

 同样的右面的也加上EditText

 运行一下

 他会随着输入的增长而增长

 三、线性布局微调参数gravity

gravity:控制组件所包含的子元素的对齐方式,可多个组合,如(left|buttom)

Layout_gravity:控制该组件在父容器里的对齐方式

    

   线性布局如何微调子控件的位置,现在我们想让账号和密码居中

 运行一下,在竖直方向上居中了。但没有在水平方向上居中

 然后用一个管道可以继续来         android:gravity="center|center_horizontal"

 运行结果

 现在完整的代码

 我们观察一下textview 的大小有多大,给他来个颜色

加上    android:background="#778899"            android:background="#223344"

运行一下

         说明刚才我们够居中了,android:gravity="centerl"      已经能让“账号”     “密码”居中了

把android:gravity="center|center_horizontal"       改成      android:gravity="center"

        只是水平方向上的大小,没有充满父控件

那把android:layout_width="wrap_content"        改成       android:layout_width="match_parent"

 运行一下

( 然后把密码的颜色也改成灰色)

如果我们在加一个id号        第48行

 

 

 运行一下

 然后把        android:layout_height="70dp"    改成        android:layout_height="100dp"

在加上一个

 <EditText
                 android:layout_weight="1"
                 android:layout_width="wrap_content"
                 android:layout_height="0dp"               
                 />    

 运行一下

 可以把颜色都去掉,

再把        android:layout_width="wrap_content"       改成 android:layout_width="match_parent"

 可以加个背景

 然后把

换成

 运行一下

如果你感觉屏幕太方块了 

把        android:layout_width="match_parent" 改成        android:layout_width="400dp"        第9行

 运行一下

     

四、线性布局divider

该属性用于为LinearLayout设置分割线图片,通过showDividers来设置分割线的所在位置,有四个可选值none,middle,begining,end;当然你还可以通过

       divider为LinearLayout设置分割线的图片

        showDividers设置分割线所在的位置,有四个可选值:none,middle,begining,end

        dividerPadding   设置分割线的padding

先给res   下面的   drawable

 

然后选择shape

系统分配的代码

我们选择它是一条线,

然后再加上颜色            <stroke android:color="#000000"/>

比如我现在要给 “账号”        “密码”        “ID号”   下面画一条线

加上一句        android:divider="@drawable/fenge"        第20行

 运行结果

id下面没有线,android:showDividers="middle"        改成        android:showDividers="middle|end"

 运行结果

 如果后面也想加个横线

 运行结果

 现在完整的代码

 

 


版权声明:本文为m0_57089315原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。