`

2011.10.13(4)——— android android:layout_weight

阅读更多
2011.10.13(4)——— android android:layout_weight

参考:http://hi.baidu.com/hbzha/blog/item/8af2b44f9bd8bd1eb2de055b.html


1、
<?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"
    >
 <TextView
         android:text="red"
         android:background="#aa0000"
         android:layout_width="wrap_content"
         android:layout_height="100dip"/>
     <TextView
         android:text="green"
         android:background="#00aa00"
         android:layout_width="wrap_content"
         android:layout_height="100dip"/>
     <TextView
         android:text="blue"
         android:background="#0000aa"
         android:layout_width="wrap_content"
         android:layout_height="100dip"/>
     <TextView
         android:text="yellow"
         android:background="#aaaa00"
         android:layout_width="wrap_content"
         android:layout_height="100dip"/>
</LinearLayout>


水平布局  textview的宽都是wrap_context

效果如下:





2、

<?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"
    >
 <TextView
         android:text="red"
         android:background="#aa0000"
         android:layout_width="wrap_content"
         android:layout_height="100dip"
         android:layout_weight="1"/>
     <TextView
         android:text="green"
         android:background="#00aa00"
         android:layout_width="wrap_content"
         android:layout_height="100dip"/>
     <TextView
         android:text="blue"
         android:background="#0000aa"
         android:layout_width="wrap_content"
         android:layout_height="100dip"/>
     <TextView
         android:text="yellow"
         android:background="#aaaa00"
         android:layout_width="wrap_content"
         android:layout_height="100dip"/>
</LinearLayout>


水平布局  textview的宽都是wrap_context 修改red的weight为1

效果如下:





通过1和2 可以得到结论:
在Horizontal的LinearLayout中,控件A和控件B的layout_weight分别设置为2和1,并不代表两者的宽度之比为2:1,2:1针对的是剩余的宽度。 控件的宽度等于空间本身需要的最小宽度,加上剩余宽度中的所占的权重。垂直方向的LinearLayout也同理。


3、

<?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"
    >
 <TextView
         android:text="red"
         android:background="#aa0000"
         android:layout_width="wrap_content"
         android:layout_height="100dip"
         android:layout_weight="1"/>
     <TextView
         android:text="green"
         android:background="#00aa00"
         android:layout_width="wrap_content"
         android:layout_height="100dip"
         android:layout_weight="1"/>
     <TextView
         android:text="blue"
         android:background="#0000aa"
         android:layout_width="wrap_content"
         android:layout_height="100dip"
         android:layout_weight="1"/>
     <TextView
         android:text="yellow"
         android:background="#aaaa00"
         android:layout_width="wrap_content"
         android:layout_height="100dip"
         android:layout_weight="1"/>
</LinearLayout>


水平布局  textview的宽都是wrap_context 修改所有的textview的weight为1

效果如下:




可以看出来 textview并不是按照1:1:1:1的比例占据宽度的 所以正好验证了上面的结论

4、
<?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"
    >
 <TextView
         android:text="red"
         android:background="#aa0000"
         android:layout_width="fill_parent"
         android:layout_height="100dip"
         android:layout_weight="1"/>
     <TextView
         android:text="green"
         android:background="#00aa00"
         android:layout_width="wrap_content"
         android:layout_height="100dip"/>
     <TextView
         android:text="blue"
         android:background="#0000aa"
         android:layout_width="wrap_content"
         android:layout_height="100dip"/>
     <TextView
         android:text="yellow"
         android:background="#aaaa00"
         android:layout_width="wrap_content"
         android:layout_height="100dip"/>
</LinearLayout>


水平布局  red的宽为fill_parent 并且weight为1,其他textview的宽都是wrap_context

效果如下:




我们明明设置了red的weight为fill_parent 它却没有填充真个屏幕
所以通过上面的结果 我们可以得到一个信息:

当使用了layout_weight属性时,该属性优先于width和height属性。



5、

<?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"
    >
 <TextView
         android:text="red"
         android:background="#aa0000"
         android:layout_width="fill_parent"
         android:layout_height="100dip"
         android:layout_weight="1"/>
     <TextView
         android:text="green"
         android:background="#00aa00"
         android:layout_width="wrap_content"
         android:layout_height="100dip"
         android:layout_weight="1"/>
     <TextView
         android:text="blue"
         android:background="#0000aa"
         android:layout_width="wrap_content"
         android:layout_height="100dip"
         android:layout_weight="1"/>
     <TextView
         android:text="yellow"
         android:background="#aaaa00"
         android:layout_width="wrap_content"
         android:layout_height="100dip"
         android:layout_weight="1"/>
</LinearLayout>


水平布局  red的宽为fill_parent 其他textview的宽都是wrap_context 修改所有的textview
的weight为1

效果如下:




这个不明白。。。。
  • 大小: 10.6 KB
  • 大小: 12.9 KB
  • 大小: 12.7 KB
  • 大小: 13.9 KB
  • 大小: 11.6 KB
分享到:
评论
1 楼 pkop57 2011-11-03  
个人认为,weight和fill_parent属性一起使用。。。效果会比较好。设置wrap_content的控制设置weight属性感觉没有用。

相关推荐

    android-autofittextview-master.zip_android_android textview_auto

    android:layout_width= match_parent android:layout_height= wrap_content &gt; &lt;Button android:layout_width= match_parent android:layout_height= wrap_content android:singleLine= true /&gt...

    android布局属性RelativeLayout详解.

    4. android:layout_alignParentBottom:使当前控件贴紧父元素的下边缘。 5. android:layout_alignParentLeft:使当前控件贴紧父元素的左边缘。 6. android:layout_alignParentRight:使当前控件贴紧父元素的右边缘。...

    2011.10.13(2)——— android Matrix学习03

    这篇博客“2011.10.13(2)——— android Matrix学习03”可能深入探讨了Matrix类的一些高级用法和实践技巧。虽然描述中没有提供具体信息,但从标题可以推断,这可能是系列教程的第三部分,继续深化对Matrix的理解。...

    SendSms.zip

    适合android初学者 &lt;LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" ...

    xwalk_core_library/23.53.589.4

    xwalk_core_library/23.53.589.4. Crosswalk is an app runtime based on Chromium/Blink. It is an open source project started by the Intel Open Source Technology Center (http://www.01.org) As of February ...

    Android 控件说明

    android:layout_marginLeft="10dp" android:layout_alignParentTop="true" /&gt; ``` #### 2\. 布局属性详解 除了位置属性,还有一些基本的布局属性: - `layout_width` 和 `layout_height`:用于定义视图的宽度...

    MT6735_Android_scatter

    ### MT6735_Android_scatter 文件解析与理解 #### 概述 在深入了解MT6735_Android_scatter文件之前,我们先来了解一下什么是scatter文件以及它在安卓设备线刷过程中的作用。 **Scatter文件**是用于描述固件分区...

    abdroid relativelayout属性

    4. `android:layout_alignParentBottom`:视图的下边缘贴紧父视图的下边缘。 5. `android:layout_alignParentLeft`:视图的左边缘贴紧父视图的左边缘。 6. `android:layout_alignParentRight`:视图的右边缘贴紧父...

    JDK_1.7,amd64_ubuntu,安装包,直接下载安装即可完成1.7版本的SDK包。原生安装,不用配置环境变量,

    文件说明: 1,安装说明.txt ——————————安装手册 2,jdk-170.tar.gz ————...4,check_java.sh———————————版本核对 注意:使用命令接口切换时,需要将自己配置的环境变量注释或者删掉!!!

    从一条电线到建立一个网络视频.zip

    10 D10 网络基础——查看ARP和ping包.mp4 11 D11 网络基础——一步一步路由.mp4 12 D12 网络基础——TCP传输控制协议.mp4 13 D13 网络基础——TCP连接过程.mp4 14 D14 网络基础——可靠的数据传输.mp4 15 D15 网络...

    Android源码——透明菜单源码.zip

    这个压缩包文件“Android源码——透明菜单源码.zip”包含了实现这一功能的相关资源,包括图片和源代码。现在,我们将深入探讨如何在Android应用中实现透明菜单及其背后的原理。 首先,透明菜单通常是通过改变系统的...

    xwalk-core-library-23.53.589.4

    crosswalk20.50.533.12之后 可能会遇到 ssl 验证失败,打不开https的问题 , 怎么办?修改过的xwalk_core_library-23.53.589.4.aar能解决你的问题

    Android源码——及时通讯源码:实时对讲机.zip

    本项目“Android源码——及时通讯源码:实时对讲机”则专注于实现一种类似对讲机的功能,让用户可以在移动设备间进行即时语音通信,无需按下通话键即可进行双向交谈。 1. **对讲机模式**:实时对讲机应用的核心在于...

    Android多行多列的单选按钮组的实现

    android:layout_weight="1" android:orientation="horizontal"&gt; &lt;!-- 第一行的RadioButton们 --&gt; android:layout_width="match_parent" android:layout_height="1dp" android:background="@color/gray_...

    android XML文件详解

    - `android:layout_alignParentBottom`, `android:layout_alignParentLeft`, `android:layout_alignParentRight`, `android:layout_alignParentTop` - 这些属性用于指定视图是否应该与父容器的某个边缘对齐。 - ...

    CrossWalk_android_23.53.589.4_arm_v7_安装包

    Crosswalk Project Runtime_23.53.589.4_共享模式核心运行库_arm_v7架构_谷歌应用商店官方_安装包

    【1积分】android-extend-1.0.6.aar

    使用方式:把资源放到libs下,在gradle app 中添加 低版本:compile files('libs/android-extend-1.0.6.aar') 高版本:implementation files('libs/android-extend-1.0.6.aar')

    方的歇后语.pdf

    13. "扁鹊开药方——妙手回春":扁鹊是医术高超的代表,这句歇后语表示高明的医生能够治愈疾病,使人恢复健康。 14. "东方打雷西方雨——声东击西":描述战术上的迷惑对手,实际上攻击的是另一处。 15. "四方萝卜...

    1641362400000_com.eg.android.AlipayGphone-main.2nd

    1641362400000_com.eg.android.AlipayGphone-main.2nd

    android Activity布局初步(一)- 线性、表格布局

    在Android应用开发中,Activity是用户界面的基本单元,它负责展示和管理屏幕上的视图和交互。本篇文章将深入探讨Activity中的布局管理器,特别是线性布局(LinearLayout)和表格布局(TableLayout)。我们将从基本...

Global site tag (gtag.js) - Google Analytics