`
fly_宇光十色
  • 浏览: 64514 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

LinearLayout子元素设置layout_weight注意的问题

 
阅读更多

最近在做项目的时候发现在设置android:layout_weight的同时,设置android:layout_width为wrap_content和match_parent会造成两种截然相反的效果,既占比小的实际显示反而大,为什么会这样呢 ?

android:layout_weight的真实含义是:一旦View设置了该属性(假设有效的情况下),那么该 View的宽度等于原有宽度(android:layout_width)加上剩余空间的占比!

 

 

Google官方推荐,当使用weight属性时,将width设为0dip即可,效果跟设成wrap_content是一样的。这样weight就可以理解为占比了!

在设置weight属性的时候,把width设置为0dp就好了。

分享到:
评论

相关推荐

    Android weight属性demo

    默认情况下,所有子视图都会按照它们自身的尺寸进行布局,但当设置`layout_weight`后,LinearLayout会先分配所有非零`layout_weight`的子视图所需空间,然后将剩余的空间按照`layout_weight`的比例分配给这些子视图...

    计算器(android)

    首先,整体布局采用LinearLayout,它的方向设置为垂直(`android:orientation="vertical"`),这意味着所有的子元素会自上而下排列。整个界面的宽度填充父容器(`android:layout_width="fill_parent"`),高度同样...

    Android_layout_详细介绍

    子控件可以通过设置`layout_weight`属性来控制在布局中的相对大小,实现灵活的控件宽度分配。例如,两个`TextView`控件,如果一个的`layout_weight`设为1,另一个设为2,则后者会占据更多的宽度。 - **对齐方式**:...

    android LayoutWeight用法

    在Android开发中,布局管理是构建用户界面的关键部分。...然而,需要注意的是,过多的使用`layout_weight`可能会导致性能问题,因为它需要更多的计算和重绘操作,所以在追求性能的场景下,应适度使用。

    Android中线性布局LinearLayout的特点.pdf

    3. **空间分配**:LinearLayout默认按照子元素的固有尺寸分配空间,但支持通过`layout_weight`属性来动态分配剩余空间。`layout_weight`是一个浮点数值,用于表示子元素在剩余空间中所占的比例。当`layout_weight`值...

    Hello_layout_demo

    `TableRow`是TableLayout的子元素,代表表格的一行。每个`TableRow`可以包含多个视图,这些视图将自动占据一列。TableLayout支持表格的伸缩特性,通过`android:shrinkColumns`和`android:stretchColumns`属性调整...

    class_layout_demo.rar_DEMO

    你可以通过`android:orientation`属性设置方向,`android:layout_weight`属性分配子视图的权重,以实现按比例分配空间。 2. **相对布局(RelativeLayout)**:允许视图相对于其他视图的位置进行定位,提供了更灵活...

    Chapter02_Layout_Project.zip

    这包括减少布局深度,避免使用嵌套布局,使用高效的布局如ConstraintLayout,以及利用`android:layout_weight`属性平衡视图大小,而不是硬编码尺寸。 8. **响应式设计** 考虑到Android设备的多样性和屏幕尺寸,...

    Android的Layout完全介绍

    LinearLayout还支持设置子元素的weight属性,使得子元素能够按比例占据剩余空间。例如,如果有三个TextView,其中两个weight为1,它们将等比例扩展填充剩余空间,而第三个保持原样。以下是一个LinearLayout的示例: ...

    [Android开发从零开始].10.LinearLayout学习

    默认情况下,子视图按其固有大小排列,但当设置`android:layout_weight`属性时,可以指定每个子视图应占的相对比例。权重高的视图将获得更多的空间。例如,两个子视图分别设置weight为1和2,在水平布局中,后者将...

    Hello_layout

    在这个例子中,两个子视图的宽度都被设置为0dp,然后通过`layout_weight="1"`使得它们平分父容器的宽度。 4. **处理嵌套**:在`LinearLayout`中,你可以嵌套其他`LinearLayout`或其他类型的布局(如`...

    weight属性详解

    此外,`LinearLayout`支持通过`android:gravity`来控制子元素的对齐方式。然而,在实际项目中,为了更灵活地管理子视图的空间分配,经常会使用到`weight`属性。本文将详细介绍`weight`属性的使用方法以及在不同场景...

    Layout_table android网格布局

    - **TableLayout**:它是LinearLayout的扩展,通过 `<TableRow>` 子元素来定义行,每行可以包含多个控件。 - **TableRow**:作为TableLayout的子元素,相当于表格的一行,可以添加多个控件,每个控件占据一列。 2...

    android线性布局详解.doc

    线性布局的`android:orientation`属性被设置为`"horizontal"`,这意味着它的子元素将按水平方向排列。`android:layout_gravity="center"`表示整个线性布局会居中于父容器。 在Android开发中,线性布局...

    Android Layout

    LinearLayout是最简单的布局之一,它按照垂直(Vertical)或水平(Horizontal)方式排列子视图(子元素)。在垂直模式下,子视图依次从上到下排列,而在水平模式下,子视图从左到右依次排列。LinearLayout非常适合...

    layout源码

    5. **子视图约束**:每个子视图在LinearLayout中都有自己的布局属性,如`android:layout_width`和`android:layout_height`,可以设置为`match_parent`(填充父容器)、`wrap_content`(根据内容大小决定)或具体尺寸...

    Android应用源码之10._LinearLayout学习.zip

    `LinearLayout`的一个独特特性是支持权重分配,通过设置`layout_weight`属性,可以使得子视图的大小根据权重比例进行扩展。例如,两个子视图,一个`layout_weight=1`,另一个`layout_weight=2`,在宽度或高度上,后...

    安卓源码可升缩LinearLayout.zip

    当LinearLayout的总空间大于所有子视图的基本尺寸之和时,`layout_weight`就起到了决定作用,它决定了剩余空间如何分配。 1. **权重分配**: - 当`layout_width`或`layout_height`设置为`0dp`时,`layout_weight`...

    android UI界面设计

    - **android:layout_weight**:用于分配父布局中剩余空间的比例,与“wrap_content”搭配使用时,可以使子元素根据权重值动态分配空间。 - **android:layout_margin**:定义子元素边缘与其父布局边缘的间距。 #### ...

Global site tag (gtag.js) - Google Analytics