Android如何仅在显示软键盘时调整ScrollView的大小

时间:2017-07-12 10:17:51

标签: android

所以我有一个上面有一个ToolBar的布局,一个带有TextViews的ScrollView和ScrollView下的两个按钮。我需要按钮在显示时位于SoftKeyboard下面,但是使ScrollView在软键盘顶部的边缘调整大小。我已经在清单上添加了    机器人:windowSoftInputMode = “adjustNothing” 并在ScrollView上 机器人:isScrollContainer = “假”

问题是当显示键盘时我无法在scrollview的边缘滚动。所以我需要在显示键盘时调整它的大小 继承人布局

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="@drawable/map_new_bg"
        android:orientation="vertical"
        android:padding="10dp">

        <ScrollView
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:isScrollContainer="false" >

            <LinearLayout
                android:id="@+id/llRegInfo"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:orientation="vertical"
                android:padding="10dp">

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

                    <EditText
                        android:id="@+id/etFirstName"
                        style="@style/EditText"
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:layout_marginLeft="10dp"
                        android:layout_marginRight="10dp"
                        android:layout_weight="1"
                        android:ems="10"
                        android:inputType="textPersonName"
                        android:text="" />
                    <EditText
                        android:id="@+id/etFirstName"
                        style="@style/EditText"
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:layout_marginLeft="10dp"
                        android:layout_marginRight="10dp"
                        android:layout_weight="1"
                        android:ems="10"
                        android:inputType="textPersonName"
                        android:text="" />

                    ....
                </LinearLayout>
                <!--MoreEditTexts Inside LinearLayout Like Above-->
            </LinearLayout>
        </ScrollView>
        <LinearLayout
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:orientation="horizontal"
            android:id="@+id/linearLayout7"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintRight_toRightOf="parent"
            app:layout_constraintLeft_toLeftOf="parent">

            <Button
                android:id="@+id/btnRegBack"
                style="@style/RedButton"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_margin="10dp"
                android:layout_weight="1"
                android:text="@string/return_text" />

            <Button
                android:id="@+id/btnRegNext"
                style="@style/RedButton"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_margin="10dp"
                android:layout_weight="1"
                android:text="@string/next_text"
                android:textAllCaps="false" />
        </LinearLayout>
 </LinearLayout>

1 个答案:

答案 0 :(得分:0)

您是否试图告诉Android当SoftKeyboard出现时该做什么?

getWindow()
    .setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);

(看看所有值,看看哪一个适合你的账单)。