Android布局---LinearLayout(线性布局)

Posted Y彤

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android布局---LinearLayout(线性布局)相关的知识,希望对你有一定的参考价值。

常用布局:LinearLayout(线性布局)、FrameLayout(帧布局)、RelativeLayout(相对布局)、GridLayout(网格布局)

布局通用属性:

属性名称功能描述
android:id设置布局的标识
android:layout_width设置布局的宽度
android:layout_height设置布局的高度
android:background设置布局的背景
android:layout_margin设置当前布局与屏幕边界或与周围控件的距离
android:padding设置当前布局与该布局中控件的距离

LinearLayout:线性布局

子View水平或垂直方向进行排列

重要属性:

orientation

排列方向属性:vertical(垂直)、horizontal(水平)

layout_weight

权重属性:通过所占比例指定控件的宽度或高度

取值:

  • =0:默认值,指定多少多大空间就占据多少空间
  • >0:将父视图中的可用空间进行分割,值越大权重越大,占据的比例就越大

例:在本例中将红色权重设置为1,绿色权重设置为2

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal">
    
<!--    红色--> 
<LinearLayout   
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#FF0000" 
    android:layout_weight="1"
    />
    
<!--  绿色-->
<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#008000 "
    android:layout_weight="2"
    />
    
</LinearLayout>

注:在linearlayout横向排列中设置权重时,android:layout_width应该设置为0dp,不能设置为wrap_content,否则layout_weight属性会失去作用,因为layout_width的优先级跟高(这句话不知道我的理解对不对,不对的可以在评论区里说)。同理,纵向排列中设置权重时,android:layout_height应该设置为0dp。

示例如下:
①设置layout_widthwrap_content

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="horizontal">

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="这是第一个按钮"
        android:layout_weight="1"
        />
    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="这是第2个按钮"
        android:layout_weight="2"
        />

②设置layout_width0dp

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="horizontal">

    <Button
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:text="这是第一个按钮"
        android:layout_weight="1"
        />
    <Button
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:text="这是第二个按钮"
        android:layout_weight="2"
        />

gravity和layout_gravity

gravity属性是布局中内容对齐,而layout_gravity属性是布局自身对齐

取值:top、bottom、start、end、center

如图示例:

①默认状态

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="horizontal">

②设置gravity

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
    android:gravity="center">

③设置layout_gravity

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
    android:layout_gravity="center">

以上是关于Android布局---LinearLayout(线性布局)的主要内容,如果未能解决你的问题,请参考以下文章

Android studio——LinearLayout(线性布局)

Android入门开发之Linearlayout布局

Android布局之线性布局——LinearLayout

Android——布局(线性布局linearLayout,表格布局TableLayout,帧布局FrameLayout)

LinearLayout布局下android:layout_weight用法

Android六大布局详解——LinearLayout(线性布局)