目前,当键盘弹出时,我有一个类似的滚动视图设置:
<?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水平和垂直居中并使其在滚动时不会切断布局的顶部?