在滚动视图中居中显示表格布局

时间:2016-12-27 14:32:22

标签: android scrollview android-tablelayout

目前,当键盘弹出时,我有一个类似的滚动视图设置:

 <?xml version="1.0" encoding="utf-8"?>
    <ScrollView 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="@drawable/home_background"
        >
            <RelativeLayout
                android:id="@+id/RelativeLayout1"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_gravity="center"
                android:fillViewport="true"
                android:gravity="center" >
                <LinearLayout
                    android:id="@+id/tableLayout1"
                    android:layout_width="fill_parent"
                    android:layout_height="fill_parent"
                    android:orientation="vertical"
                    android:gravity="center_horizontal"
                    android:layout_centerHorizontal="true"
                    android:layout_centerInParent="true"
                    android:weightSum="2"
                   >
                    <!-- 2 columns -->
                    <LinearLayout
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:padding="5dip"
                        android:orientation="horizontal"
                        android:layout_weight="2">
                        <TextView
                            android:layout_weight="1"
                            android:layout_height="wrap_content"
                            android:layout_width="wrap_content"

                            android:text="Heading1"
                            />
                        <TextView
                            android:layout_weight="1"
                            android:layout_height="wrap_content"
                            android:layout_width="wrap_content"

                            android:text="Heading2"
                            />
                    </LinearLayout>
                    <LinearLayout
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:padding="5dip"
                        android:layout_weight="2">
                        <TextView
                            android:layout_weight="1"
                            android:layout_height="wrap_content"
                            android:layout_width="wrap_content"

                            android:text="Label1: "
                            />
                        <EditText
                            android:layout_weight="1"
                            android:id="@+id/editLabel1"
                            android:textColor="#C0C0C0"

                            android:layout_width="75dp"
                            android:layout_height="wrap_content" />
                    </LinearLayout>

                    <LinearLayout
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:padding="5dip"
                        android:layout_weight="2">
                        <TextView
                            android:layout_weight="1"
                            android:layout_height="wrap_content"
                            android:layout_width="wrap_content"

                            android:text="Label2: "
                            />
                        <EditText
                            android:id="@+id/editLabel2"
                            android:layout_weight="1"
                            android:textColor="#C0C0C0"
                            android:layout_width="75dp"
                            android:layout_height="wrap_content" />
                    </LinearLayout>
                    <LinearLayout
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:padding="5dip"
                        android:layout_weight="2">
                        <TextView
                            android:layout_weight="1"
                            android:layout_height="wrap_content"
                            android:layout_width="wrap_content"

                            android:text="Label3: "
                            />
                        <EditText
                            android:layout_weight="1"
                            android:id="@+id/editLabel3"
                            android:textColor="#C0C0C0"

                            android:layout_width="75dp"
                            android:layout_height="wrap_content" />
                    </LinearLayout>
                    <LinearLayout
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:padding="5dip"
                        android:layout_weight="2">
                        <TextView
                            android:layout_weight="1"
                            android:layout_height="wrap_content"
                            android:layout_width="wrap_content"
                            android:text="Label4: "
                            />
                        <EditText
                            android:layout_weight="1"
                            android:id="@+id/editLabel4"
                            android:textColor="#C0C0C0"
                            android:layout_width="75dp"
                            android:layout_height="wrap_content" />
                    </LinearLayout>
                    <LinearLayout
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:padding="5dip"
                        android:layout_weight="2">
                        <TextView
                            android:layout_weight="1"
                            android:layout_height="wrap_content"
                            android:layout_width="wrap_content"
                            android:text="Label5: "
                            />
                        <EditText
                            android:layout_weight="1"
                            android:id="@+id/editLabel5"
                            android:textColor="#C0C0C0"
                            android:layout_width="75dp"
                            android:layout_height="wrap_content" />
                    </LinearLayout>
                    <LinearLayout
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:padding="5dip"
                        android:layout_weight="2">
                        <TextView
                            android:layout_weight="1"
                            android:layout_height="wrap_content"
                            android:layout_width="wrap_content"
                            android:text="Label6: "
                            />
                        <EditText
                            android:layout_weight="1"
                            android:id="@+id/editLabel6"
                            android:textColor="#C0C0C0"
                            android:layout_width="75dp"
                            android:layout_height="wrap_content" />
                    </LinearLayout>
                </LinearLayout>
            </RelativeLayout>
    </ScrollView>

这会将水平布局水平和垂直居中,但是当textView具有可变长度文本时,列不会排列。我想使用tablelayout,以便列排列如下:

<?xml version="1.0" encoding="utf-8"?>
<ScrollView 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="@drawable/home_background"
    >
        <RelativeLayout
            android:id="@+id/RelativeLayout1"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:fillViewport="true"
            android:gravity="center" >
            <TableLayout
                android:id="@+id/tableLayout1"
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                android:orientation="vertical"
                android:gravity="center_horizontal"
                android:layout_centerHorizontal="true"
                android:layout_centerInParent="true"
               >
                <!-- 2 columns -->
                <TableRow
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:padding="5dip"
                    android:orientation="horizontal"
                    >
                    <TextView
                        android:layout_height="wrap_content"
                        android:layout_width="wrap_content"
                        android:text="HEading1"
                        />
                    <TextView
                        android:layout_height="wrap_content"
                        android:layout_width="wrap_content"
                        android:text="Heading2"
                        />
                </TableRow>
                <TableRow
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:padding="5dip"
                    >
                    <TextView
                        android:layout_height="wrap_content"
                        android:layout_width="wrap_content"
                        android:text="Label1: "
                        />
                    <EditText
                        android:id="@+id/editLabel1"
                        android:textColor="#C0C0C0"
                        android:layout_width="75dp"
                        android:layout_height="wrap_content" />
                </TableRow>
                <TableRow
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:padding="5dip"
                    >
                    <TextView
                        android:layout_height="wrap_content"
                        android:layout_width="wrap_content"
                        android:text="Label2: "
                        />
                    <EditText
                        android:id="@+id/editLabel2"
                        android:textColor="#C0C0C0"
                        android:layout_width="75dp"
                        android:layout_height="wrap_content" />
                </TableRow>
                <TableRow
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:padding="5dip"
                    >
                    <TextView
                        android:layout_height="wrap_content"
                        android:layout_width="wrap_content"
                        android:text="Lable3: "
                        />
                    <EditText
                        android:id="@+id/editLAble3"
                        android:textColor="#C0C0C0"
                        android:layout_width="75dp"
                        android:layout_height="wrap_content" />
                </TableRow>
                <TableRow
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:padding="5dip">
                    <TextView
                        android:layout_height="wrap_content"
                        android:layout_width="wrap_content"
                        android:text="LAbel4: "
                        />
                    <EditText
                        android:id="@+id/editLabel4"
                        android:textColor="#C0C0C0"
                        android:layout_width="75dp"
                        android:layout_height="wrap_content" />
                </TableRow>
                <TableRow
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:padding="5dip"
                    >
                    <TextView
                        android:layout_height="wrap_content"
                        android:layout_width="wrap_content"
                        android:text="Label5: "
                        />
                    <EditText
                        android:id="@+id/editLable5"
                        android:textColor="#C0C0C0"
                        android:layout_width="75dp"
                        android:layout_height="wrap_content" />
                </TableRow>
                <TableRow
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:padding="5dip"
                    >
                    <TextView
                        android:layout_height="wrap_content"
                        android:layout_width="wrap_content"
                        android:text="Lablel6: "
                        />
                    <EditText
                        android:id="@+id/editLable6"
                        android:textColor="#C0C0C0"
                        android:layout_width="75dp"
                        android:layout_height="wrap_content" />
                </TableRow>
            </TableLayout>
        </RelativeLayout>
</ScrollView>

然而,tablelayout不会水平居中。此外,在两种布局中,当使用键盘向上滚动时,布局的顶部(标题和第一行的顶部)被切断。如何将tablelayout水平和垂直居中并使其在滚动时不会切断布局的顶部?

0 个答案:

没有答案