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_width
为wrap_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_width
为0dp
<?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,表格布局TableLayout,帧布局FrameLayout)