都知道weight是权重的意思. 在布局中起到非常重要的作用. 但是这玩意不能嵌套使用, 而且只能使用在LinearLayout中.

  下面说说它的几种用法(以下例子全为横排 注意android:layout_width值和android:layout_weight值的变化)  

  第一种, 最普遍的-----均分, weight的值越大, 占的空间越大.注意android:layout_width的值都为0dp

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="match_parent"    android:layout_height="wrap_content"    android:orientation="horizontal">    <FrameLayout        android:layout_width="0dp"        android:layout_height="match_parent"        android:layout_weight="1"        android:background="#000" />    <Button        android:layout_width="0dp"        android:layout_height="match_parent"        android:layout_weight="1"/>    <FrameLayout        android:layout_width="0dp"        android:layout_height="match_parent"        android:layout_weight="1"        android:background="#888" /></LinearLayout>

  第二种, 占满剩余空间, 不管是否处在最后一个

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="match_parent"    android:layout_height="wrap_content"    android:orientation="horizontal">    <FrameLayout        android:layout_width="40dp"        android:layout_height="match_parent"        android:background="#000" />    <Button        android:layout_width="0dp"        android:layout_height="match_parent"        android:layout_weight="1"/>    <FrameLayout        android:layout_width="40dp"        android:layout_height="match_parent"        android:background="#888" /></LinearLayout>

  第三种, 值越大占的空间越小, 值为同布局下其它控件的weight之和时,即消失.注意android:layout_width的值都为match_parent为0时占满. 有什么用途? 呵呵, 存在即是合理的.

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="match_parent"    android:layout_height="wrap_content">    <FrameLayout        android:layout_width="match_parent"        android:layout_height="match_parent"        android:layout_weight="1"        android:background="#000" />    <Button        android:layout_width="match_parent"        android:layout_height="match_parent"        android:layout_weight="1.5"/>    <FrameLayout        android:layout_width="match_parent"        android:layout_height="match_parent"        android:layout_weight="1"        android:background="#000" /></LinearLayout>

  最后一种(我会用的), 结合android:weightSum使用, 那这儿就用一个问题引入, 如何将控件放在屏幕的中央, 宽度为屏幕的一半? 嗯.....想啊.....想啊...RelativeLayout? 哦, 没法控制? 哦,只能代码了... 

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:gravity="center"    android:weightSum="2">    <Button        android:layout_width="0dp"        android:layout_height="wrap_content"        android:layout_weight="1"/></LinearLayout>

ok, so easy!

更多相关文章

  1. Android之四大布局
  2. Android布局文件属性笔记
  3. View控件中android:drawablePadding不起作用的原因探究
  4. Android控件编辑时键盘弹起与关闭处理
  5. Android如何使布局中图(ImageButton)和文字(TextView)同时获得press
  6. Android中shape定义控件的使用
  7. Android 开发之旅:view的几种布局方式及实践
  8. Android的ListView控件滚动时背景问题

随机推荐

  1. golang怎么导入包
  2. golang检查文件是否存在的方法
  3. golang能开发什么?
  4. golang最适合做什么项目
  5. golang如何编译
  6. golang导出csv乱码解决方法
  7. golang 乱码怎么解决
  8. golang判断字符串是否为空的方法
  9. golang怎么生成随机数
  10. golang 开源吗