我无法将TableLayout中的行放在屏幕中央。我正在尝试创建一个4x4的可点击图像表,并希望它们在屏幕上居中。最后绘制它们左对齐,我希望它们以两侧的空间为中心。这是我的代码:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<TableLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:paddingTop="20dp">
<TableRow android:layout_gravity="center_horizontal">
<ImageView android:src="@drawable/rocket"
android:layout_width="60dp"
android:layout_height="60dp"
android:padding="3dp"
android:layout_gravity="center" />
<ImageView android:src="@drawable/rocket"
android:layout_width="60dp"
android:layout_height="60dp"
android:padding="3dp"
android:layout_gravity="center" />
<ImageView android:src="@drawable/rocket"
android:layout_width="60dp"
android:layout_height="60dp"
android:padding="3dp"
android:layout_gravity="center" />
<ImageView android:src="@drawable/rocket"
android:layout_width="60dp"
android:layout_height="60dp"
android:padding="3dp"
android:layout_gravity="center" />
</TableRow>
<TableRow android:layout_gravity="center_horizontal">
<ImageView android:src="@drawable/rocket"
android:layout_width="60dp"
android:layout_height="60dp"
android:padding="3dp" />
<ImageView android:src="@drawable/rocket"
android:layout_width="60dp"
android:layout_height="60dp"
android:padding="3dp" />
<ImageView android:src="@drawable/rocket"
android:layout_width="60dp"
android:layout_height="60dp"
android:padding="3dp" />
<ImageView android:src="@drawable/rocket"
android:layout_width="60dp"
android:layout_height="60dp"
android:padding="3dp" />
</TableRow>
<TableRow android:layout_gravity="center_horizontal">
<ImageView android:src="@drawable/rocket"
android:layout_width="60dp"
android:layout_height="60dp"
android:padding="3dp" />
<ImageView android:src="@drawable/rocket"
android:layout_width="60dp"
android:layout_height="60dp"
android:padding="3dp" />
<ImageView android:src="@drawable/rocket"
android:layout_width="60dp"
android:layout_height="60dp"
android:padding="3dp" />
<ImageView android:src="@drawable/rocket"
android:layout_width="60dp"
android:layout_height="60dp"
android:padding="3dp" />
</TableRow>
</TableLayout>
</LinearLayout>
有什么建议吗?
答案 0 :(得分:9)
尝试 android:layout_gravity =“center_horizontal”,如下所示
<TableRow android:layout_gravity="center_horizontal"
android:layout_weightsum = "4">
<ImageView android:src="@drawable/rocket"
android:layout_width="60dp"
android:layout_height="60dp"
android:padding="3dp"
android:layout_weight = "1" />
<ImageView android:src="@drawable/rocket"
android:layout_width="60dp"
android:layout_height="60dp"
android:padding="3dp"
android:layout_weight = "1" />
<ImageView android:src="@drawable/rocket"
android:layout_width="60dp"
android:layout_height="60dp"
android:padding="3dp"
android:layout_weight = "1" />
<ImageView android:src="@drawable/rocket"
android:layout_width="60dp"
android:layout_height="60dp"
android:padding="3dp"
android:layout_weight = "1" />
</TableRow>
答案 1 :(得分:5)
通常我们使用layout_gravity来对齐。
尝试
android:gravity="center_horizontal"
代码。
android:gravity
将数据与水平中心对齐。
答案 2 :(得分:2)
在您的情况下,bieno002,确保您的<TableLayout>
layout_width
设置为"wrap_content"
。这将为它提供任何一方呼吸的空间。
然后,只需向android:layout_gravity="horizontal"
节点添加<TableLayout>
即可。像这样:
<TableLayout android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal">
<TableRow>
<TextView (or whatever)>
<TextView (or whatever)>
</TableRow>
</TableLayout>