我试图将一个TableLayout作为LinearLayout中的唯一项(它有一个背景图标,我想覆盖整个屏幕),我想将其居中,并说使用60%的宽度和70%的高度,例如。我有这个,看起来还可以,但我不确定它能在很多设备上工作,我想知道什么是最好的,最通用的表达方式。
<LinearLayout
android:id="@+id/mainLayout"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:background="@drawable/mylogo"
android:padding="0dip"
android:gravity="center_vertical|center_horizontal"
android:baselineAligned="false"
>
<TableLayout
android:background="#FFFF0000"
android:layout_width="200dp"
android:layout_height="250dp"
android:gravity="center_vertical|center_horizontal"
android:stretchColumns="field">
</TableLayout>
</LinearLayout>
我摆弄了一下排版的重量,但我唯一能做的就是让桌子消失。
谢谢
史蒂芬
最佳答案
LinearLayout
只能按权重对一维进行子级调整,但由于您只担心调整单个视图的大小,因此可以通过嵌套LinearLayout
s来完成此操作。
<LinearLayout
android:id="@+id/mainLayout"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:background="@drawable/mylogo"
android:gravity="center"
android:weightSum="1.0">
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="0dp"
android:orientation="horizontal"
android:gravity="center"
android:weightSum="1.0"
android:layout_weight="0.7">
<TableLayout
android:background="#FFFF0000"
android:layout_width="0dp"
android:layout_height="fill_parent"
android:gravity="center"
android:stretchColumns="field"
android:layout_weight="0.6">
</TableLayout>
</LinearLayout>
</LinearLayout>
这种布局在不同设备上是否好看取决于您的内容。一般来说,我倾向于合理的填充/边距,但这又非常依赖于内容。