layout_weight
该属性的作用是决定控件在其父布局中的显示权重,一般用于线性布局中。其值越小,则对应的layout_width或layout_height的优先级就越低,一般横向布局中,决定的是layout_width的优先级;纵向布局中,决定的是layout_height的优先级。
传统的layout_weight使用方法是将当前控件的layout_width和layout_height都设置成fill_parent,这样就可以把控件的显示比例完全交给layout_weight;这样使用的话,就出现了layout_weight越小,显示比例越小的情况。不过对于2个控件还好,如果控件过多,且显示比例也不相同的时候,控制起来就比较麻烦了,毕竟反比不是那么好确定的。
举例说明,如果parent长度是10,模式是horizontal,三个子控件的layout_weight分别是1,1,3,那么这三个子控件的宽度就分别是2、2、6,也就是按照layout_weight的比例来分配的。
实际举例:
布局文件:style(style_layout.xml)
<?xml version="1.0" encoding="utf-8"?> <resources> <!-- 全屏拉伸 --> <style name="layout_full"> <item name="android:layout_width">fill_parent</item> <item name="android:layout_height">fill_parent</item>> </style> <!-- 固定自身大小 --> <style name="layout_wrap"> <item name="android:layout_width">wrap_content</item> <item name="android:layout_height">wrap_content</item> </style> <!-- 横向分布 --> <style name="layout_horizontal" parent="layout_full"> <item name="android:layout_width">0px</item> </style> <!-- 纵向分布 --> <style name="layout_vertical" parent="layout_full"> <item name="android:layout_height">0px</item> </style> </resources>
主界面布局文件如下(activity_main.xml):
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" style="@style/layout_full" android:orientation="vertical" > <LinearLayout style="@style/layout_vertical" android:layout_weight="1" android:orientation="horizontal"> <View style="@style/layout_horizontal" android:background="#aa0000" android:layout_weight="1"/> <View style="@style/layout_horizontal" android:background="#00aa00" android:layout_weight="2"/> <View style="@style/layout_horizontal" android:background="#0000aa" android:layout_weight="4"/> <View style="@style/layout_horizontal" android:background="#aaaaaa" android:layout_weight="8"/> </LinearLayout> <LinearLayout style="@style/layout_vertical" android:layout_weight="2" android:orientation="vertical" > <View style="@style/layout_vertical" android:background="#ffffff" android:layout_weight="8"/> <View style="@style/layout_vertical" android:background="#aa0000" android:layout_weight="4"/> <View style="@style/layout_vertical" android:background="#00aa00" android:layout_weight="2"/> <View style="@style/layout_vertical" android:background="#0000aa" android:layout_weight="1"/> </LinearLayout> </LinearLayout>
根据上面的分配关系,可以得出最终的占比效果为:
相关推荐
在Android开发中,`android:layout_weight`是一个非常重要的属性,尤其在布局管理器中,如LinearLayout。这个属性主要用于在有限的空间内分配组件的大小,根据权重比例来决定每个子视图占据的屏幕空间。本篇文章将...
这个"Android_layout.rar"压缩包文件包含了关于Android布局属性的详细资料,尤其是对开发者来说,掌握这些属性对于优化UI设计至关重要。 1. **LinearLayout**:线性布局是最基础的布局,它可以将子视图按照垂直或...
"layout_weight"是Android布局系统中的一个关键概念,用于在LinearLayout中分配子视图的权重,使得它们可以根据相对比例而不是绝对大小来占据空间。Base64是一种用于将二进制数据编码为ASCII字符串的算法,常见于在...
在每个内部的水平布局中,按钮的布局权重(`android:layout_weight`)被用来确保它们能平均分配空间。例如,两个Button组件都设置了`android:layout_weight="1"`,意味着它们会占据相同的空间,无论它们的原始尺寸...
在Android开发中,`android:layout_weight`是一个关键属性,特别是在使用`LinearLayout`进行界面布局时。`layout_weight`用于指定一个子视图在父视图中的权重,它决定了控件如何分配额外的空间,尤其是在视图的尺寸...
### Android布局详解 #### 一、概述 在Android应用开发中,布局管理是构建用户界面的基础。合理且灵活地使用不同的布局方式可以帮助开发者创建出既美观又实用的应用界面。本篇文章将详细介绍Android中的几种基本...
在Android中,`TableLayout`是一个专为创建表格设计的布局,但有时使用`ListView`配合`Layout_weight`能更有效地实现类似的效果,尤其是在处理大量数据时。这是因为`ListView`可以动态加载视图,提高性能和用户体验...
### Android布局详解 在Android应用开发中,布局(Layout)是构建用户界面的关键组成部分,它决定了界面元素如何在屏幕上组织和排列。以下是对几种常见布局的深入解析: #### LinearLayout(线性布局) 线性布局...
在Android移动开发中,"Weight"一词通常与布局管理器相关,特别是LinearLayout中的`layout_weight`属性。这个属性在创建动态、响应式界面时非常关键,因为它允许开发者分配视图组件之间的空间比例,而不仅仅是固定...
在Android开发中,`layout_weight`属性是LinearLayout布局中的一个重要特性,它允许我们在有限的空间内按比例分配子视图的宽度或高度。`layout_weight`主要用于实现灵活的界面设计,尤其是在需要子视图等宽或者根据...
- **权重分配**:在TableRow中,可以使用`android:layout_weight`属性为控件分配权重,决定控件占据的列宽比例。 4. **Spanned Cells(跨列):** - 通过设置`android:layout_span`属性,可以让一个控件跨越多列...
本文将深入探讨Android布局的各种类型及其使用方法,旨在帮助开发者更好地理解和掌握Android应用的UI设计。 首先,我们来了解Android中的基本布局类型: 1. **线性布局(LinearLayout)**:这是最基础的布局,它...
熟练掌握`layout_weight`的使用,能让你的Android布局设计更加灵活高效。通过实践和理解权重分配机制,你可以创建出适应性强、视觉美观的应用界面。在实际项目中,结合其他布局管理器,如RelativeLayout、...
#### 二、Android布局基本属性 在开始介绍具体的布局类型之前,我们先了解一些通用的属性,这些属性对于所有的布局都是适用的。 - **android:id** - 用途:为控件指定唯一的ID,便于在代码中引用。 - 示例:`...
在Android开发中,布局(Layout)是构建用户界面的核心元素,它定义了屏幕上各个组件的排列方式和相互关系。这个名为"ex07_layout.rar"的压缩包显然提供了多种布局类型的示例,包括表格布局(TableLayout)、结构...
android:layout_weight="1" android:orientation="horizontal"> android:id="@+id/tv_solid_number" android:layout_width="wrap_content" android:layout_height="wrap_content" android:hint="本次上架...
在做android UI布局时,用了LinearLayout嵌套,发现效果并不如我预料一般 查了下资料,说是要设置layout_weight属性 资料说得不是很清楚,也没仔细看,就去弄,结果越弄越混乱。 于是静下心来,自己写xml测试,发现...
在Android开发中,线性布局(LinearLayout)是基础且常用的布局管理器之一,它允许开发者按照垂直或水平方向排列子视图(View)。本实例针对初学者,将深入讲解线性布局的使用方法和特点。 一、线性布局介绍 线性...
【Android学习指南之Layout 布局】 在Android开发中,布局(Layout)是构建用户界面的核心元素,它负责组织和定位应用中的各个视图组件。本指南将着重讲解三种主要的布局类型:LinearLayout、RelativeLayout和...
其值越小,则对应的layout_width或layout_height的优先级就越高,一般横向布局中,决定的是layout_width的优先级;纵向布局中,决定的是layout_height的优先级。 传统的layout_weight使用方法是将当前控件的layout_...