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的用法:点我查看

 

### 回答1: 当你在Android Studio中创建新项目时,默认情况下会使用约束布局(ConstraintLayout)进行界面布局。但你也可以选择使用其他布局方式,例如线性布局LinearLayout)或相对布局(RelativeLayout)。 以下是使用约束布局进行界面布局的示例: 1. 打开Android Studio并创建新项目。 2. 在res/layout目录中创建一个新的XML布局文件。 3. 将以下代码复制并粘贴到XML文件中: ``` <?xml version="1.0" encoding="utf-8"?> <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="match_parent"> <TextView android:id="@+id/textview_hello" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Hello World!" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" /> </androidx.constraintlayout.widget.ConstraintLayout> ``` 4. 运行应用程序并查看界面布局。你会看到一个包含“Hello World!”文本的文本视图。 在这个示例中,我们创建了一个ConstraintLayout布局,并在其中添加了一个TextView。使用app:layout_constraintBottom_toBottomOf,app:layout_constraintEnd_toEndOf,app:layout_constraintStart_toStartOf和app:layout_constraintTop_toTopOf属性将TextView固定在父布局的中心。 你可以尝试添加更多的视图,然后使用约束属性将它们与其他视图和父布局对齐。ConstraintLayout使得布局变得灵活,可扩展,可以在不同屏幕大小和设备上呈现出更好的效果。 ### 回答2: 在Android Studio中,线性布局是一种常用的布局容器,它允许将元素按照水平或垂直方向排列。而线性布局也可以嵌套在其他线性布局中,形成复杂的布局结构。 下面以一个实例来说明线性布局嵌套使用。 假设我们需要创建一个界面,其中包含一个上方导航栏和一个下方显示内容的区域。导航栏中有两个按钮,分别代表“主页”和“设置”。 首先,在布局文件中定义一个垂直方向的根线性布局: ```xml <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> <!-- 头部导航栏 --> <LinearLayout android:orientation="horizontal" android:layout_width="match_parent" android:layout_height="wrap_content"> <Button android:text="主页" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <Button android:text="设置" android:layout_width="wrap_content" android:layout_height="wrap_content" /> </LinearLayout> <!-- 内容区域 --> <LinearLayout android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> <!-- 此处添加内容视图 --> </LinearLayout> </LinearLayout> ``` 上述代码中,根线性布局设置了垂直方向,并占满全屏。导航栏部分是一个水平方向的线性布局,包含了两个按钮。内容区域是另一个垂直方向的线性布局,用于显示具体的内容。 我们可以在内容区域的LinearLayout中添加自定义的视图,例如一个文本视图或图像视图。在实际开发中,还可以在导航栏中使用其他的UI元素来满足设计需求。 以上就是一个简单的线性布局嵌套的实例。通过嵌套不同方向和不同的线性布局,我们可以自由组合和排列界面元素,实现复杂而灵活的界面设计。 ### 回答3: Android Studio是一款用于开发Android应用程序的集成开发环境。在Android Studio中,可以使用各种布局方式来设计应用程序的用户界面。其中,线性布局是一种常用的布局方式,可以实现简单而有效的界面设计。 线性布局是一种按照水平或垂直方向排列子视图的布局方式。当需要在界面中嵌套多个线性布局时,可以灵活地实现各种复杂的布局效果。 假设我们需要设计一个简单的登陆界面,包括一个LOGO图标、用户名文本框、密码文本框和登陆按钮。可以使用线性布局嵌套这些视图。 首先,在布局文件中添加一个垂直方向的线性布局LinearLayout)作为根布局。在这个布局中,添加一个水平方向的线性布局作为标题栏,放置LOGO图标和应用程序名称。然后,再添加一个垂直方向的线性布局作为内容区域,放置用户名文本框、密码文本框和登陆按钮。 在使用线性布局嵌套时,需要注意设置好各个视图的布局属性,如宽度、高度、权重等,以实现所需的布局效果。可以使用Android Studio提供的可视化布局编辑器和属性面板来方便地设置布局属性。 总之,Android Studio中线性布局嵌套可以实现复杂的界面设计。通过合理地设置各个视图的布局属性,可以实现各种灵活的布局效果,满足不同应用程序的需求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值