android:在tablelayout中布局组件的问题

android:在tablelayout中布局组件的问题,android,android-layout,Android,Android Layout,我是android开发新手。在我正在使用的android应用程序中,我试图显示一个人的照片及其详细信息,如下所示。细节是从数据库中获取的,当然,我已经硬编码了。我对布局有意见。我使用了tableview布局(因为android版本8不支持网格布局)名称“&国家”在表的第1行中年龄、城市、状态在第2行 我尝试了相对和线性布局(尝试在它们之间切换),但没有成功。另外,尝试从堆栈溢出中找到几个答案 1.为什么表视图的右角有这么多未使用的空间?我试图将字段分布到表格视图的中心,两侧(页面中的顶部栏)留有

我是android开发新手。在我正在使用的android应用程序中,我试图显示一个人的照片及其详细信息,如下所示。细节是从数据库中获取的,当然,我已经硬编码了。我对布局有意见。我使用了tableview布局(因为android版本8不支持网格布局)名称“&国家”在表的第1行中年龄、城市、状态在第2行

我尝试了相对和线性布局(尝试在它们之间切换),但没有成功。另外,尝试从堆栈溢出中找到几个答案

1.为什么表视图的右角有这么多未使用的空间?我试图将字段分布到表格视图的中心,两侧(页面中的顶部栏)留有一些间隙,但正如您所看到的,它似乎向左侧倾斜(因此在右侧留下了大量未使用的规范)

当我旋转时,情况会变得更糟(所有的东西都向左浮动;我希望场能够很好地隔开,并在边上留下一些间隙),正如您在这里看到的

这是布局文件

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#cccccc"
    android:orientation="vertical"
    tools:context=".MEFloorPlanDisplay" >

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="220dp"
        android:background="#666666"
        android:orientation="vertical" >

        <TableLayout
            android:layout_width="fill_parent"
            android:layout_height="wrap_content" >

            <TableRow
                android:id="@+id/tableRow1"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content" >

                <LinearLayout
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:gravity="center"
                    android:orientation="horizontal" >

                    <LinearLayout
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:gravity="center"
                        android:orientation="horizontal" >

                        <TextView
                            android:id="@+id/textView_1"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:gravity="center"
                            android:paddingBottom="10dip"
                            android:paddingLeft="10dip"
                            android:paddingRight="10dip"
                            android:paddingTop="10dip"
                            android:text="NAME"
                            android:textColor="#cccccc"
                            android:textSize="18sp" />

                        <TextView
                            android:id="@+id/textView_1_value"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:paddingBottom="10dip"
                            android:paddingLeft="10dip"
                            android:paddingRight="10dip"
                            android:paddingTop="10dip"
                            android:text="John"
                            android:textColor="#ffffff"
                            android:textSize="20sp" />
                    </LinearLayout>

                    <LinearLayout
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content" >

                        <TextView
                            android:id="@+id/textView_2"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:paddingBottom="10dip"
                            android:paddingLeft="70dip"
                            android:paddingRight="10dip"
                            android:paddingTop="10dip"
                            android:text="COUNTRY"
                            android:textColor="#cccccc"
                            android:textSize="18sp" />

                        <TextView
                            android:id="@+id/textView_2_value"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:paddingBottom="10dip"
                            android:paddingLeft="10dip"
                            android:paddingRight="10dip"
                            android:paddingTop="10dip"
                            android:text="AMERICA"
                            android:textColor="#ffffff"
                            android:textSize="20sp" />
                    </LinearLayout>
                </LinearLayout>
            </TableRow>

            <TableRow
                android:id="@+id/tableRow2"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content" >

                <RelativeLayout
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content" >

                    <LinearLayout
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_alignParentLeft="true"
                        android:layout_alignParentTop="true"
                        android:layout_weight="33"
                        android:orientation="vertical" >

                        <TextView
                            android:id="@+id/textView_3"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:paddingBottom="5dip"
                            android:paddingLeft="10dip"
                            android:paddingRight="10dip"
                            android:paddingTop="15dip"
                            android:text="AGE"
                            android:textColor="#cccccc"
                            android:textSize="18sp" />

                        <TextView
                            android:id="@+id/textView_3_value"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:paddingBottom="5dip"
                            android:paddingLeft="10dip"
                            android:paddingRight="10dip"
                            android:paddingTop="0dip"
                            android:text="37"
                            android:textColor="#ffffff"
                            android:textSize="20sp" />
                    </LinearLayout>

                    <LinearLayout
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_alignParentTop="true"
                        android:layout_centerHorizontal="true"
                        android:layout_weight="33"
                        android:orientation="vertical" >

                        <TextView
                            android:id="@+id/textView_4"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:paddingBottom="5dip"
                            android:paddingTop="15dip"
                            android:text="CITY"
                            android:textColor="#cccccc"
                            android:textSize="18sp" />

                        <TextView
                            android:id="@+id/textView_4_value"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:paddingBottom="5dip"
                            android:paddingTop="0dip"
                            android:text="CA"
                            android:textColor="#ffffff"
                            android:textSize="20sp" />
                    </LinearLayout>

                    <LinearLayout
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_alignParentRight="true"
                        android:layout_alignParentTop="true"
                        android:layout_weight="34"
                        android:gravity="right"
                        android:orientation="vertical" >

                        <TextView
                            android:id="@+id/textView_5"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:layout_gravity="right"
                            android:gravity="right"
                            android:paddingBottom="5dip"
                            android:paddingLeft="10dip"
                            android:paddingTop="15dip"
                            android:text="STATUS"
                            android:textColor="#cccccc"
                            android:textSize="18sp" />

                        <TextView
                            android:id="@+id/textView_5_value"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:lines="2"
                            android:maxLines="3"
                            android:paddingBottom="5dip"
                            android:paddingLeft="10dip"
                            android:paddingTop="0dip"
                            android:text="SINGLE"
                            android:textColor="#ffffff"
                            android:textSize="20sp" />
                    </LinearLayout>
                </RelativeLayout>
            </TableRow>
        </TableLayout>
    </LinearLayout>

    <!-- image view code -->

</LinearLayout>

试试这些代码

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#cccccc"
    android:orientation="vertical"
    tools:context=".MEFloorPlanDisplay" >

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="220dp"
        android:background="#666666"
        android:orientation="vertical" >

        <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical"
             >

                <LinearLayout
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                    android:gravity="center"
                android:layout_marginTop="5dp"
                android:layout_marginBottom="5dp"
                    android:orientation="horizontal" >

                    <LinearLayout
                        android:layout_width="0dp"
                        android:layout_height="wrap_content"
                        android:gravity="center"
                        android:layout_weight="0.4"
                        android:orientation="horizontal" >

                        <TextView
                            android:id="@+id/textView_1"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:gravity="center"
                            android:text="NAME"
                            android:textColor="#cccccc"
                            android:textSize="18sp" />

                        <TextView
                            android:id="@+id/textView_1_value"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:paddingLeft="5dp"
                            android:text="John"
                            android:textColor="#ffffff"
                            android:textSize="20sp" />
                    </LinearLayout>

                    <LinearLayout
                        android:layout_width="0dp"
                        android:layout_height="wrap_content" 
                        android:layout_weight="0.6"
                        android:gravity="center"
                        >

                        <TextView
                            android:id="@+id/textView_2"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:layout_gravity="center"
                            android:text="COUNTRY"
                            android:textColor="#cccccc"
                            android:textSize="18sp" />

                        <TextView
                            android:id="@+id/textView_2_value"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:paddingLeft="5dp"                            
                            android:layout_gravity="center"
                            android:text="AMERICA"
                            android:textColor="#ffffff"
                            android:textSize="20dp" />
                    </LinearLayout>
                </LinearLayout>

            <LinearLayout
                android:id="@+id/tableRow2"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content" 
                android:orientation="horizontal"
                android:layout_marginTop="5dp"
                android:layout_marginBottom="5dp"
                >

                    <LinearLayout
                        android:layout_width="0dp"
                        android:layout_height="wrap_content"
                        android:layout_weight="0.33"
                        android:layout_gravity="center"
                        android:gravity="center"
                        android:orientation="vertical" >

                        <TextView
                            android:id="@+id/textView_3"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:text="AGE"
                            android:textColor="#cccccc"
                            android:textSize="18sp" />

                        <TextView
                            android:id="@+id/textView_3_value"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:text="37"
                            android:textColor="#ffffff"
                            android:textSize="20sp" />
                    </LinearLayout>

                    <LinearLayout
                        android:layout_width="0dp"
                        android:layout_height="wrap_content"
                        android:layout_weight="0.33"
                        android:layout_gravity="center"
                        android:gravity="center"
                        android:orientation="vertical" >

                        <TextView
                            android:id="@+id/textView_4"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:text="CITY"
                            android:textColor="#cccccc"
                            android:textSize="18sp" />

                        <TextView
                            android:id="@+id/textView_4_value"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:text="CA"
                            android:textColor="#ffffff"
                            android:textSize="20sp" />
                    </LinearLayout>

                    <LinearLayout
                        android:layout_width="0dp"
                        android:layout_height="wrap_content"
                        android:layout_weight="0.33"
                        android:layout_gravity="center"
                        android:gravity="center"
                        android:orientation="vertical" >

                        <TextView
                            android:id="@+id/textView_5"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:text="STATUS"
                            android:textColor="#cccccc"
                            android:textSize="18sp" />

                        <TextView
                            android:id="@+id/textView_5_value"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:text="SINGLE"
                            android:textColor="#ffffff"
                            android:textSize="20sp" />
                    </LinearLayout>
            </LinearLayout>
        </LinearLayout>
    </LinearLayout>

    <!-- image view code -->

</LinearLayout>

肖像画

风景画


尽量避免使用表格布局。在RelativeLayout内使用线性布局。

为什么要求避免使用表格布局?对于这种情况,RelativeLayout不是很适合吗?RelativeLayout更适合于多种设备。我还听说TableLayout在API级别14及更高版本中被弃用,但我不确定。但唯一可以确定的是,RelativeLayout更适合于多屏幕。如果操作得当,也更容易操作。