在下面的布局中,我希望行具有精确的高度第一行178px和接下来的两个71px。相反,我得到了一些额外像素的底部两个。我做错了什么,或者表格布局不像我喜欢的那么精确?
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="480px"
android:layout_height="320px"
android:background="@drawable/screen"
android:padding="0dp"
android:layout_margin="0dp"
android:stretchColumns="0"
android:weightSum="320" >
<TableRow android:layout_weight="178" android:padding="0dp" android:layout_margin="0dp">
<TextView
android:text=""
android:gravity="center_horizontal"
android:background="#99aa0000"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:padding="0dp"
/>
</TableRow>
<TableRow android:layout_weight="71" android:padding="0dp" android:layout_margin="0dp">
<TextView
android:text=""
android:gravity="center_horizontal"
android:background="#990000aa"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:padding="0dp"
android:layout_margin="0dp" />
</TableRow>
<TableRow android:layout_weight="71" android:padding="0dp" android:layout_margin="0dp">
<TextView
android:text=""
android:gravity="center_horizontal"
android:background="#9900aa00"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:padding="0dp"
android:layout_margin="0dp"
/>
</TableRow>
</TableLayout>
</blink>
答案 0 :(得分:0)
您的权重用于分发额外空间,而非所有空间。尝试为每个android:layout_height="0px"
设置TableRow
;这将使额外的空间320像素。您还可以消除每个android:layout_width
中视图的android:layout_height
和TableRow
属性(它们被TableRow
覆盖)。
顺便说一句,指定精确的像素尺寸(0除外)通常是个不好的主意;它不会扩展到不同的屏幕尺寸和/或密度。
答案 1 :(得分:0)
TableRows的layout_height也没有影响它,似乎在3.0中,TableLayout按预期工作,但旧版本很奇怪。一位朋友建议我尝试使用LinearLayout的类似方法,它实际上有效:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="480px"
android:layout_height="320px"
android:background="#99ff0101"
android:padding="0dp"
android:layout_margin="0dp"
android:weightSum="320"
android:orientation="vertical" >
<TextView
android:text=""
android:background="#99aa0000"
android:layout_width="fill_parent"
android:layout_height="0px"
android:padding="0dp"
android:layout_weight="178"
/>
<TextView
android:text=""
android:background="#990000aa"
android:layout_width="fill_parent"
android:layout_height="0px"
android:padding="0dp"
android:layout_margin="0dp"
android:layout_weight="71" />
<TextView
android:text=""
android:background="#9900aa00"
android:layout_width="fill_parent"
android:layout_height="0px"
android:padding="0dp"
android:layout_margin="0dp"
android:layout_weight="71"
/>
</LinearLayout >
至于确切的像素尺寸,我完全清楚它不推荐,我只是测试行如何缩放并使用它作为示例来显示我的问题。