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

时间:2013-11-04 09:52:03

标签: android android-layout

是Android开发的新手。在正在处理的Android应用程序中,我试图显示一个人的照片和他/她的详细信息,如下所示。详细信息是从数据库中获取的,但是,对于enow,我已经硬编码了。我的布局有问题。我使用了tableview布局(因为android版本8不支持网格布局)。 'name'& 'country'位于表格的第1行。 '年龄','城市','状态'排在第2行。

我试过这么亲戚和线性布局(尝试在它们之间切换),徒劳无功。此外,尝试从堆栈溢出中遵循几个答案。

1.为什么桌面视图的右角有这么多未使用的空间?我试图将字段展开到桌面视图的中心,两侧有一些间隙(页面中的顶部栏),但它似乎向左侧倾斜(正如你所看到的那样)未使用的)。

enter image description here

当我旋转时,它会变得更糟(一切都浮在左边;我希望这些区域能够很好地隔开并留下一些间隙),正如你在这里看到的那样

enter image description here

这是布局文件

<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>

2 个答案:

答案 0 :(得分: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" >

        <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>

纵向

enter image description here

在风景中

enter image description here

答案 1 :(得分:0)

尽量避免使用TableLayout。在RelativeLayout中使用LinearLayouts。