• Android layout_weight的用法


    • android:layout_weight是指LinearLayout先给里面的控件分配完大小之后剩余空间的权重。

    下面通过举例说明:

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  
        xmlns:tools="http://schemas.android.com/tools"  
        android:layout_width="match_parent"  
        android:layout_height="match_parent"  
        android:orientation="horizontal" >  
      
        <TextView  
            android:layout_width="wrap_content"  
            android:layout_height="wrap_content"  
            android:background="#0045f5"  
            android:gravity="center"  
            android:text="1" />  
      
        <TextView  
            android:layout_width="wrap_content"  
            android:layout_height="wrap_content"  
            android:background="#00ff47"  
            android:gravity="center"  
            android:text="2"   
            android:layout_weight="1"/>  
      
        <TextView  
            android:layout_width="wrap_content"  
            android:layout_height="wrap_content"  
            android:background="#ff5600"  
            android:gravity="center"  
            android:layout_weight="1"  
            android:text="3" />  
      
    </LinearLayout> 

    这个布局文件包括3个TextView控件,界面如下:

    解释:由于3个文本框的宽度都是“wrap_content”,即根据视图内部内容自动扩展,LinearLayout就先给3个TextView分配适当的空间大小,

    假设每个TextView分配10dp的宽度,屏幕宽度为480dp,那么LinearLayout的剩余空间就是480-3*10=450dp,由于第一个TextView没有

    设置layout_weight,所以它的宽度就是10dp,而后面两个TextView设置layout_weight都是1,所以后面两个TextView就平均分配LinearLayout

    的剩余空间,即为450/2=225dp,所以后面两个TextView的宽度为10+225=235dp。

    • 如何让控件按比例进行空间大小的分配

    将控件的width设置为0dp,然后layout_weight的值就是该控件的权重。

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  
        xmlns:tools="http://schemas.android.com/tools"  
        android:layout_width="match_parent"  
        android:layout_height="match_parent"  
        android:orientation="horizontal" >  
      
        <TextView  
            android:layout_width="0dip"  
            android:layout_height="wrap_content"  
            android:background="#0045f5"  
            android:gravity="center"  
            android:layout_weight="1"  
            android:text="1" />  
      
        <TextView  
            android:layout_width="0dip"  
            android:layout_height="wrap_content"  
            android:background="#00ff47"  
            android:gravity="center"  
            android:text="2222222222222222222"   
            android:layout_weight="2"/>  
      
        <TextView  
            android:layout_width="0dip"  
            android:layout_height="wrap_content"  
            android:background="#ff5600"  
            android:gravity="center"  
            android:layout_weight="3"  
            android:text="3" />  
    </LinearLayout>

    效果图如下:三个控件按照1:2:3的比例进行空间分配

    摘自:http://blog.csdn.net/xiaanming/article/details/13630837#

     程序猿必读

  • 相关阅读:
    windows2003 如何配置ASP网站
    如何在asp.net中获取GridView隐藏列的值?
    GridView.RowCommand 事件中获取当前行的信息
    模块导入导出
    API / DOM
    HTTP(搁置)
    npm
    链接(跳转)<routerlink> 和 路由实例Router
    elementui
    vuex
  • 原文地址:https://www.cnblogs.com/longzhongren/p/6170251.html
Copyright © 2020-2023  润新知