码迷,mamicode.com
首页 > 移动开发 > 详细

【Android 开发笔记】weight属性

时间:2014-09-01 01:40:02      阅读:230      评论:0      收藏:0      [点我收藏+]

标签:android   style   blog   http   color   os   io   使用   ar   

混合使用weightSum和layout_weight

先看效果,button占据屏幕宽度的一半。

bubuko.com,布布扣

再看开发文档中的描述。

“定义weight总和的最大值。如果未指定该值,以所有子视图的layout_weight属性的累加值作为总和的最大值。一个典型的案例是:通过指定子视图的layout_weight属性为0.5,并设置LinearLayout的weightSum属性为1.0,实现子视图占据可用宽度的50。”

XML文件的源码。

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="#ffffff"
    android:gravity="center"
    android:orientation="horizontal"
    android:weightSum="1" >

    <Button
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="0.5"
        android:text="@string/activity_main_click_me" />

</LinearLayout>
指定Button的android:layout_width属性为0dp,因此需要根据android:weightSum属性决定Button的width。

假设有一个宽度是200dp,android:weightSum属性是1.0的LinearLayout。在这个LinearLayout中的Button宽度的计算公式如下。

Button‘s width + Button‘s weight * 200 / sum(weight)
指定Button的width为0dp,weight为0.5,sum(weight)等于1,那么结果如下。

0 + 0.5 * 200 / 1 = 100


概要

当需要根据比例分配布局可用空间的时候,使用LinearLayout的weight属性是很有必要的,这避免了使用硬编码的方式带来的副作用。如果目标平台是Honeycomb并且使用Fragment,那么大多数案例中都是使用weight在布局文件转哦给你为Fragment分配空间。深入理解如何使用weight会为开发者增添一项重要技能。


外部链接

http://developer.android.com/reference/android/widget/LinearLayout.html

http://mobile.51cto.com/abased-375428.htm

【Android 开发笔记】weight属性

标签:android   style   blog   http   color   os   io   使用   ar   

原文地址:http://blog.csdn.net/manoel/article/details/38968577

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!