键盘显示时如何修改布局以显示输入字段?

时间:2014-03-27 12:27:53

标签: android android-layout android-softkeyboard

我使用以下布局

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:layout_width="match_parent"
              android:layout_height="wrap_content"
              android:gravity="center"
              android:orientation="vertical"
              android:padding="10dp"
              android:isScrollContainer="true">

        <TextView
            android:id="@+id/wizard4_title"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:paddingBottom="10dp"
            android:scrollbars="vertical"
            android:text="@string/wizard4_title"
            android:textColor="#0088cc"
            android:textSize="20sp"
            android:textStyle="bold" />
    <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:layout_marginTop="0dp"
            android:orientation="vertical"
            android:layout_weight="1">
        <TextView
            android:id="@+id/wizard4_text1"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:clickable="true"
            android:gravity="fill_horizontal"
            android:scrollbars="vertical"
            android:text="@string/wizard4_text1"
            android:textSize="18sp" />
        <EditText
            android:id="@+id/wizard4_name"
            android:hint="@string/wizard4_name_hint"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            />
        <TextView
            android:id="@+id/wizard4_text3"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:clickable="true"
            android:gravity="fill_horizontal"
            android:scrollbars="vertical"
            android:text="@string/wizard4_text3"
            android:textSize="18sp" />
        <EditText
            android:id="@+id/wizard4_address"
            android:hint="@string/wizard4_address_hint"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            />        

    </LinearLayout>
    <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="10dp"
            android:layout_marginBottom="10dp">
        <Button
                android:id="@+id/wizard4_btn_back"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:text="@string/wizard_back" />
        <Button
                android:id="@+id/wizard4_btn_next"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:text="@string/wizard_next" />
    </LinearLayout>
</LinearLayout>

它显示为ViewAnimator的一部分:

viewAnimator = new ViewAnimator(this);
...
View step4 = View.inflate(getBaseContext(), R.layout.wizard4, null);
viewAnimator.addView(step4);
setContentView(viewAnimator);

当用户点击第二个输入字段(wizard4_address)时,将显示软键盘,隐藏输入字段。当键盘显示时,显示按钮wizard4_btn_nextwizard4_btn_back,我也不需要它。但我应该始终把它们放在最底层。

1 个答案:

答案 0 :(得分:0)

试试这个。希望你能得到你想要的东西。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:gravity="center"
    android:orientation="vertical"
    android:padding="10dp" >

    <ScrollView
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1" >

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

            <TextView
                android:id="@+id/wizard4_title"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:paddingBottom="10dp"
                android:scrollbars="vertical"
                android:text="@string/wizard4_title"
                android:textColor="#0088cc"
                android:textSize="20sp"
                android:textStyle="bold" />

            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="0dp"
                android:layout_marginTop="0dp"
                android:layout_weight="1"
                android:orientation="vertical" >

                <TextView
                    android:id="@+id/wizard4_text1"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:clickable="true"
                    android:gravity="fill_horizontal"
                    android:scrollbars="vertical"
                    android:text="@string/wizard4_text1"
                    android:textSize="18sp" />

                <EditText
                    android:id="@+id/wizard4_name"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:hint="@string/wizard4_name_hint" />

                <TextView
                    android:id="@+id/wizard4_text3"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:clickable="true"
                    android:gravity="fill_horizontal"
                    android:scrollbars="vertical"
                    android:text="@string/wizard4_text3"
                    android:textSize="18sp" />

                <EditText
                    android:id="@+id/wizard4_address"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:hint="@string/wizard4_address_hint" />
            </LinearLayout>
        </LinearLayout>
    </ScrollView>

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginBottom="10dp"
    android:layout_marginTop="10dp" >

    <Button
        android:id="@+id/wizard4_btn_back"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:text="@string/wizard_back" />

    <Button
        android:id="@+id/wizard4_btn_next"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:text="@string/wizard_next" />
</LinearLayout>