ZNDS智能电视网 推荐当贝市场

TV应用下载 / 资源分享区

软件下载 | 游戏 | 讨论 | 电视计算器

综合交流 / 评测 / 活动区

交流区 | 测硬件 | 网站活动 | Z币中心

新手入门 / 进阶 / 社区互助

新手 | 你问我答 | 免费刷机救砖 | ROM固件

查看: 12390|回复: 0
上一主题 下一主题
[教程]

android layout_weight讲解

[复制链接]
跳转到指定楼层
楼主
发表于 2013-8-28 16:29 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
9当填充属性是wrap_content时,随着layout_weight的变大,该控件的优先级越高,   
当填充属性是fill_parent时,随着layout_wight的变大,该控件的优先级越低   
   
   
在网上看了一些对Layout_weight的讲解,有些说的比较片面,只列举了一种情况,然后自己通过实验和一些比较好的文章总结了一下,特此记录下来,以备以后所用。Layout_weight是线性布局,也就是LinearLayout里面用到的,下面通过实验来看这个Layout_weight的特性。   
1.当控件的属性android:layout_width="fill_parent"时,布局文件如下:   
Xml代码   
        <?xml version="1.0" encoding="utf-8"?>   
        <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"   
            android:orientation="horizontal" android:layout_width="fill_parent"   
            android:layout_height="fill_parent">   
            <Button android:layout_width="fill_parent"   
                android:layout_height="wrap_content" android:layout_weight="1"   
                android:text="Button1" />   
            <Button android:layout_width="fill_parent"   
                android:layout_height="wrap_content" android:layout_weight="2"   
                android:text="Button2" />   
        </LinearLayout>   
         在这里Button1的Layout_weight=1,Buttong2的Layout_weight=2,运行效果为:   
     
        我们看到,Button1占了2/3,Button2占了1/3。如果此时把button2的weight设置成2000,不是说Button2就消失了,而是Button1的宽度几乎占满了屏幕宽度,而屏幕最后一丝细条则是留给Button2的,已近非常小了,没有显示出来。截图如下:   
     
   
         得出结论:在layout_width设置为fill_parent的时候,layout_weight代表的是你的控件要优先尽可能的大,但尽可能大是有限度的,即fill_parent.   
            
        2.当控件的属性android:layout_width="wrap_content"时,布局文件如下:   
   
Xml代码   
        <?xml version="1.0" encoding="utf-8"?>   
        <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"   
            android:orientation="horizontal" android:layout_width="fill_parent"   
    android:layout_height="fill_parent">   
            <Button android:layout_width="wrap_content"   
                android:layout_height="wrap_content" android:layout_weight="1"   
                android:text="Button1" />   
            <Button android:layout_width="wrap_content"   
                android:layout_height="wrap_content" android:layout_weight="2"   
                android:text="Button2" />   
        </LinearLayout>   
         同样,Button1的weight设置为1,Button2的weight设置为2,但是效果与fill_parent的效果截然相反。运行效果如下:   
     
        这时,和fill_parent正好相反,Button1的宽度占据了屏幕宽度的1/3,而Button2的宽度占据了屏幕的2/3,如果此时把Button2的weight设置为2000,按照之前理解,Button1应该小的几乎在屏幕上看不到,但是错了,实验告诉我们,当Button1的weight非常小时,也要"wrap_content",也就是要保证Button1至少能够显示。以下是Button2设置weight为2000时的运行截图:   
     
        我们看到,Button1已经足够小,但是要保证他能显示出来,因此得出结论:   
        在layout_width设置为wrap_content的时候,layout_weight代表的是你的控件要优先尽可能的小,但这个小是有限度的,即wrap_content.   
当了解这些后,我们再设计程序时,为了能够自适应屏幕,不想给控件一个指定的宽度和高度,就可以使用这个weight属性来让它按自己比例来划分屏幕高度或者宽度了。   
   

上一篇:【转】Android应用及应用管理
下一篇:路径规划
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐

【荐】当贝AI 满血版DeepSeek R1 免费用
【荐】当贝AI 满血版DeepSeek R1 免费用
当贝AI重磅上线:搭载DeepSeek R1 671B满血版!免费、免登录,极速不卡顿!

查看 »

Archiver|新帖|标签|软件|Sitemap|ZNDS智能电视网 ( 苏ICP备2023012627号 )

站长统计

网络信息服务信用承诺书 | 增值电信业务经营许可证:苏B2-20221768 丨 苏公网安备 32011402011373号

GMT+8, 2025-6-14 09:57 , Processed in 0.132747 second(s), 17 queries , Redis On.

Powered by Discuz!

监督举报:report#znds.com (请将#替换为@)

© 2007-2025 ZNDS.Com

快速回复 返回顶部 返回列表