layout_weight属性的那些坑

2014-11-24 10:37:47 · 作者: · 浏览: 0

以前在写android程序的时候,就在layout_weight属性这部分吃过亏

首先看一下Layout_weight属性的作用:它是用来分配属于空间的一个属性,你可以设置他的权重。

看下面代码:

  

  
    
   
    
   


  

显示结果:

\

很明显最后结果是上面的Text1和下面的Text2以1:2的比例瓜分手机屏幕

但是当我们把Text1和Text2的layout_height设成fill_parent 或者match_parent的话< http://www.2cto.com/kf/ware/vc/" target="_blank" class="keylink">vcD4KPHA+PC9wPgo8cHJlIGNsYXNzPQ=="brush:java;">
显示结果为:

\

有意思的现象出现了,此时的Text1和Text2是以2:1的比例分布的

很奇怪的现象,其实layout_weight的意思是对剩余的空间进行瓜汾 http://www.2cto.com/kf/yidong/wp/" target="_blank" class="keylink">WPC9wPgo8cD7Ssr7NysfLtaOs1eLA77XEwb249lRleHSjrLa8yscxICogcGFyZW50SGVpZ2h0PC9wPgo8cD7Ko9Pgv9W85L7NyscxICogcGFyZW50SGVpZ2h0IC0gMiAqIHBhcmVudEhlaWdodCA9IC0xICogcGFyZW50SGVpZ2h0PC9wPgo8cD60y8qxtcRUZXh0Mb7Nu+Gx5LPJo7oxICogcGFyZW50SGVpZ2h0ICYjNDM7ICgtMSAqIHBhcmVudEhlaWdodCAqIDEvMykgPSAyLzMgKiBwYXJlbnRIZWlnaHQ8L3A+CjxwPs2swO20y8qxtcRUZXh0Mr7Nu+Gx5LPJo7oxICogcGFyZW50SGVpZ2h0ICYjNDM7ICgtMSAqIHBhcmVudEhlaWdodCAqIDIvMykgPSAxLzMgKiBwYXJlbnRIZWlnaHQ8L3A+CjxwPsv50tS+zbvhtcOz9lRleHQxo7pUZXh0MrXEscgmIzIwNTQwO86qMiA6IDGjrLj6ztLDx8/rz/O1xDGjujLV/brDz+C3tDwvcD4KPHA+PGJyPgo8L3A+CjxwPjxzdHJvbmc+0vK0y6Os1NrO0sPH08NsYXlvdXRfd2VpZ2h0yvTQ1LXEyrG68qOsPC9zdHJvbmc+PC9wPgo8cD48c3Ryb25nPsjnufu/2Lz+tcS4uL/YvP7Kx8uuxr23vc/yo6yyu9KqyejWw2xheW91dF93aWR0aM6qZmlsbF9wYXJlbnS78tXfbWF0Y2hfcGFyZW50o6w8L3N0cm9uZz48L3A+CjxwPjxzdHJvbmc+udm3vc3GvPbJ6NbDv9i8/rXEbGF5b3V0X3dpZHRoPQ=="0dp"(用wrap_content也是可以的)

如果控件的父控件是垂直方向,不要设置layout_height为fill_parent或者match_parent,

官方推荐设置控件的layout_height="0dp"(用wrap_content也是可以的)


那么当设置了layout_weight的控件遇到没设置layout_weight的控件会发生什么呢

  

  
    
   
    
   
    
   


  

显示结果:

\

如图所见,设置有layout_weight属性的控件会按照比例分割剩余空间

如果只有一个设置layout_weight属性的控件,那么它将独占剩余空间