`

android layout_weight属性学习巩固

阅读更多



    一年一年又一年,时间过得真心快,已经是2015年11月份了,但是我等屌丝依旧在

梦想的道路上苦苦地摸索,步入正题

大家都使用过线性布局,layout_weight属性

一般我们会把相应的layout_width(水平布局)或者layout_height(垂直的)设为0dp,来保证layout_weight的正常使用。比如在一个水平的线性布局里,放入三个textView

 

<!--StartFragment -->

得到的结果是


<!--StartFragment -->


 
是不是觉得怪怪的,不应该是这样吗?


原因:textView对于控件在线性布局里不是水平的,=而里面的文字(内容)确实水平的,因此我们可以修改父容器的baseLineAligned=“false”,来告诉子控件,让子控件水平,得到我们预期的效果。

 

情景二:修改

当我们把第一个textview设为自适应



 得到的结果是这样的


 

 什么情况?

是因为LinearLayout属性首先按照控件声明的尺寸进行分配,于是textView1的内容就充满了,让后剩下的按照weight值的1:2:3d的比例分配。

情景三:

当全部为fill_parent时,



 结果wei:
 

layout_weight最小的确反而拥有最大的尺寸

分析:根据二中给出的结论,控件先按照声明的尺寸分配,剩下的尺寸按照比例分配
 

假设屏幕宽度为480dp

则剩余的尺寸为480-480*3=-960

于是textView1为480+(-960)*0.2

textView2,3分别为480+(-960)*0.4和480+(-960)*0.6

所以出现了这种不可思议的情况,有没有很酷

结论:控件宽度+剩余的部分*比例

 

拓展:linearlayout里只有一个控件,但是却想只占用屏幕一半的面积,可以把linearlayout设属性weightSum=2,texview layout_weight=1

layout_XXX表示在相应的布局,XXX则表示控件本身内容
  • 大小: 117.5 KB
  • 大小: 11.7 KB
  • 大小: 10.8 KB
  • 大小: 129.6 KB
  • 大小: 11.6 KB
  • 大小: 140.9 KB
  • 大小: 11.1 KB
分享到:
评论

相关推荐

    Android源码LinearLayout实例

    在实际使用中,我们可以通过设置`android:layout_width`、`android:layout_height`、`android:layout_weight`等属性控制子视图的大小和位置。例如,当`layout_weight`不为0时,子视图会占用额外的空间,即使它们的...

    android ConstraintLayout的使用及理解,含demo

    在Android开发中,`ConstraintLayout`是一个非常重要的布局管理器,它被引入来解决复杂的界面设计问题,提高布局性能,并简化代码。本教程将深入探讨`...记得实践是最好的老师,动手编写Demo是巩固学习的最佳方式。

    Android项目

    本项目深入探讨了Android布局管理器的详细学习,旨在帮助开发者巩固基础,提高UI设计的能力。 首先,我们要了解Android中的几种基本布局管理器。主要有线性布局(LinearLayout)、相对布局(RelativeLayout)、帧...

    android-关于布局

    `android:weightSum`用于分配子视图的权重,而`android:layout_weight`则分配了每个子视图占据的相对空间。 2. 相对布局(RelativeLayout):在相对布局中,每个视图的位置可以相对于其他视图定义,如`android:...

    XML绘制表格

    通过调整它们的属性,如`android:layout_weight`,可以控制单元格的宽度分配。 在实际开发中,为了实现动态加载数据,我们可能需要在代码中动态创建和添加TableRow。这可以通过实例化TableLayout、TableRow和View...

    分享我的第一个Android小游戏——猜拳游戏

    2. **XML布局设计**:游戏界面的设计通常通过XML进行,例如`My_01_12_Layout_Weight_HK`可能代表一个布局文件,其中运用了权重(weight)属性来实现界面元素的等比例分配,如按钮和文字视图。 3. **Activity**:在...

    Android 简单计算器

    `android:layout_width`和`android:layout_height`属性用于设置控件大小,`android:layout_weight`用于实现按比例分配空间,确保不同屏幕尺寸下的适配。此外,按钮的点击事件需要通过`OnClickListener`来处理,这...

    Android基础开发教程

    layout_weight属性用于分配子元素在布局中所占的权重,而weightSum则是设置总的权重限制。此外,还可以使用divider和showDividers属性设置分割线。 2. FrameLayout(帧布局):所有子元素都位于布局的左上角,后面...

    activity控件基础task.rar

    每个子视图可以通过`android:layout_weight`属性分配相对权重,以便在空间有限时按比例分配大小。 4. **基础控件**:在Android中,常见的基础控件包括TextView(显示文本)、Button(按钮)、ImageView(图片显示)...

    智能家居系统 布局Layout.doc

    常用属性有`android:layout_toLeftOf`、`android:layout_alignParentTop`等,通过这些属性可以精确控制每个组件的位置。例如,一个按钮可以设置在另一个按钮的右侧或上方。 线性布局(LinearLayout)是最基础的布局...

    022集-LinearLayout制作登录页面

    3. **权重分配**:通过设置android:layout_weight属性,可以实现子视图根据权重比例分配空间,这在创建响应式设计时非常有用。例如,让输入框占据相同的宽度,或者使按钮占据剩余的空间。 4. **样式和主题**:了解...

Global site tag (gtag.js) - Google Analytics