Android表格布局权重不精确
在下面的布局中,我希望第一行的高度为178px,第二行的高度为71px。取而代之的是,我用几个额外的像素得到了底部的两个。我做错了什么,或者桌子的布局没有我喜欢的那么精确Android表格布局权重不精确,android,tablelayout,Android,Tablelayout,在下面的布局中,我希望第一行的高度为178px,第二行的高度为71px。取而代之的是,我用几个额外的像素得到了底部的两个。我做错了什么,或者桌子的布局没有我喜欢的那么精确 <TableLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="480px" android:layout_height="320px" android:background
<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>
你的重量被用来分配额外的空间,而不是所有的空间。尝试为每个TableRow设置android:layout_height=0px;这将使额外的空间达到320像素。您还可以消除每个TableRow中视图的android:layout_width和android:layout_height属性,它们被TableRow覆盖
顺便说一句,指定除0以外的精确像素尺寸通常不是一个好主意;它不能扩展到不同的屏幕大小和/或密度。TableRows的布局高度也不会影响它,在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 >
至于确切的像素尺寸,我完全知道这不是推荐的,我只是测试行的缩放方式,并将其作为示例来显示我的问题