Android超详细讲解组件LinearLayout的使用
作者:小皮猪 时间:2023-11-01 01:04:27
概述
LinearLayout是线性布局组件,放置在其中的组件按列或者按行(就是垂直或者水平)的方式排序分布。
常用XML配置属性
(1) android:orientation
设置LinearLayout容器布局组件的方式:只能取值:horizontal(水平的),vertical(垂直的)
(2) android:gravity
设置布局在LinearLayout容器内的组件对齐方式。
取值包括top, bottom, left, right, center, start, end(上,下,左,右,中,开始,结束)
(3) View中继承来的属性
(包括android:background ,android:visibility等。还有一些改善美观的放置组件的间隔)
1. android:layout_width和android:layout_height (match_parent/wrap_content)
2 .android:layout_gravity 设置组件在容器中的布局
3. android:layout_weight 设置组件占用空间的空余显示空间的比列
4. android:layout_margin ,android:layout_marginTop ,android:layout_marginBottom ,android:layout_marginLeft ,android:layout_marginRight 设置组件的外边界,类似我们搞网页设计HTML/CSS中margin用法。
代码举例
activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<RadioGroup
android:id="@+id/orientation"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:padding="10dp"
>
<RadioButton
android:id="@+id/horizontal"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:text="水平"
android:textSize="30dp"
/>
<RadioButton
android:id="@+id/vertical"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:text="垂直"
android:textSize="30dp"
/>
</RadioGroup>
<RadioGroup
android:id="@+id/gravity"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:padding="10dp"
>
<RadioButton
android:id="@+id/left"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="居左"
android:textSize="30dp"
/>
<RadioButton
android:id="@+id/center"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="居中"
android:textSize="30dp"
/>
<RadioButton
android:id="@+id/right"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="居右"
android:textSize="30dp"
/>
</RadioGroup>
</LinearLayout>
MainActivity.java
package com.example.android_demo02;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.Gravity;
import android.widget.LinearLayout;
import android.widget.RadioGroup;
public class MainActivity extends AppCompatActivity implements RadioGroup.OnCheckedChangeListener {
private RadioGroup orientation;
private RadioGroup gravity;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
orientation=(RadioGroup) findViewById(R.id.orientation);
orientation.setOnCheckedChangeListener(this);
gravity=(RadioGroup) findViewById(R.id.gravity);
gravity.setOnCheckedChangeListener(this);
}
@Override
public void onCheckedChanged(RadioGroup radioGroup, int i) {
switch (i){
case R.id.horizontal:
orientation.setOrientation(LinearLayout.HORIZONTAL);
break;
case R.id.vertical:
orientation.setOrientation(LinearLayout.VERTICAL);
break;
case R.id.left:
gravity.setGravity(Gravity.START);
break;
case R.id.center:
gravity.setGravity(Gravity.CENTER_HORIZONTAL);
break;
case R.id.right:
gravity.setGravity(Gravity.END);
break;
}
}
}
实现效果:
来源:https://blog.csdn.net/m0_56233309/article/details/123491720
标签:Android,LinearLayout
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
Mybatis的特点及优点
2022-11-19 16:27:54
Gradle的使用教程详解
2022-08-12 05:02:11
![](https://img.aspxhome.com/file/2023/0/84220_0s.png)
C#实现集合转换成json格式数据的方法
2022-03-18 03:28:50
解决genymotion模拟器无法联网的正确方法100%成功
2023-09-04 23:20:54
![](https://img.aspxhome.com/file/2023/7/89517_0s.png)
Android中FoldingLayout折叠布局的用法及实战全攻略
2021-05-23 19:29:17
![](https://img.aspxhome.com/file/2023/9/137149_0s.jpg)
全面解析java final关键字
2023-03-16 03:04:55
Java 使用Socket正确读取数据姿势
2023-09-16 12:13:43
Android 中View.onDraw(Canvas canvas)的使用方法
2022-11-16 16:40:48
![](https://img.aspxhome.com/file/2023/2/100622_0s.png)
Java获得当前时间前指定几个小时具体时间的方法示例
2023-11-24 04:56:49
![](https://img.aspxhome.com/file/2023/7/59727_0s.jpg)
浅谈Java堆外内存之突破JVM枷锁
2022-10-19 19:46:50
![](https://img.aspxhome.com/file/2023/0/99870_0s.png)
Java switch关键字原理及用法详解
2023-04-16 23:29:49
关于MVC与SpringMVC的介绍、区别、执行流程
2023-11-28 02:25:56
C#中实现一次执行多条带GO的sql语句实例
2023-07-12 10:23:53
C# DataTable中Compute方法用法集锦(数值/字符串/运算符/表等操作)
2023-03-01 23:28:38
超详细的Java 问题排查工具单
2023-02-10 06:02:17
![](https://img.aspxhome.com/file/2023/4/84214_0s.png)
详解kafka中的消息分区分配算法
2021-06-02 08:16:15
![](https://img.aspxhome.com/file/2023/3/78223_0s.png)
spring循环注入异常问题的解决方案
2021-06-29 02:21:18
Java关键字volatile详析
2023-01-21 21:51:11
![](https://img.aspxhome.com/file/2023/5/129185_0s.gif)
Spring Boot示例分析讲解自动化装配机制核心注解
2022-07-26 15:56:14
![](https://img.aspxhome.com/file/2023/0/62170_0s.png)
C#实现将汉字转化为2位大写的16进制Unicode的方法
2022-03-11 21:45:07