Android布局文件设置TableLayout某一列宽度为屏幕宽度的30%
我的意思是某一列占30%,其他列占剩下的70% 展开
我给你一个思路吧:
<TableLayout
android:width = 0dp;
android:weight = 7; />
<LinearLayout
android:width = 0dp;
android:weight = 3;/>
这样就会有一个tablelayout 和一个 LinearLayout,tablelayout宽度占总宽度的30%,线性布局占70%
权重做的,具体代码这样:
<TableLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal" >
<TableRow
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:background="@android:color/holo_orange_light" >
</TableRow>
<TableRow
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:background="@android:color/background_light" >
</TableRow>
<TableRow
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="3"
android:background="@android:color/darker_gray" >
</TableRow>
<TableRow
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:background="@android:color/holo_blue_bright" >
</TableRow>
<TableRow
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:background="@android:color/holo_green_dark" >
</TableRow>
<TableRow
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:background="@android:color/holo_orange_dark" >
</TableRow>
<TableRow
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:background="@android:color/holo_purple" >
</TableRow>
<TableRow
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:background="@android:color/holo_red_dark" >
</TableRow>
</TableLayout>
实现的效果就是:
不过在TableLayout中可以使用layout_weight属性来控制控件所占屏幕的宽度。
比如有两个控件A和B水平排列,将它们的layout_weight属性分别设为3和7,那么这两个控件就会填满父控件,A占父控件宽度的3/10, B占父控件的7/10。如果有多个控件的话,可以通过计算layout_weight来确定每个控件所占比例。
值得注意的是,layout_weight属性只在LinearLayout和TableLayout中起作用。