键盘打开时ScrollView没有调整

时间:2017-02-16 04:20:48

标签: android android-softkeyboard android-scrollview

我创建了一个带有表单的活动。因为表单很长,所以我使用了scrollview。问题是,当键盘启动时,scrollview不会改变。键盘与滚动视图的最后一部分重叠。

我使用了16个目标的25分钟的最小Sdk。

我一直在努力解决这个问题,任何人都可以帮助我解决这个问题,提前谢谢。

此图中存在问题 enter image description here

我想要像这样(EDITED PIC) enter image description here

我一直在尝试使用此代码更改清单:

 android:windowSoftInputMode="stateAlwaysHidden|adjustResize|adjustPan"

和我活动中的代码

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

以下是完整XML

<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/activity_create_new_user"
    style="@android:style/Widget.DeviceDefault.Light.ScrollView"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@color/colorPrimary"
    android:paddingTop="22dp"
    android:scrollbarSize="20dp"
    tools:context="com.jlmaychinny.app.cashbilis.Ui_Activities.CreateNewUserActivity">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        android:paddingBottom="@dimen/nav_header_vertical_spacing"
        android:paddingLeft="@dimen/nav_header_vertical_spacing"
        android:paddingRight="@dimen/nav_header_vertical_spacing"
        android:paddingTop="10dp">

        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:padding="5dp"
            android:text="Create your account by providing the following."
            android:textAlignment="center"
            android:textColor="@android:color/white"
            android:textSize="16sp"
            tools:ignore="HardcodedText" />

        <com.jlmaychinny.app.cashbilis.CircleImageView.CircleImageView
            android:id="@+id/createnewuser_profile_image"
            android:layout_width="150dp"
            android:layout_height="150dp"
            android:layout_gravity="center"
            android:src="@drawable/person_icon"
            app:civ_border_color="@color/colorPrimaryDark"
            app:civ_border_width="5dp" />

        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="Name:"
            android:textColor="@android:color/white"
            tools:ignore="HardcodedText" />

        <EditText
            android:id="@+id/createnewuser_name"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="10dp"
            android:background="@drawable/edittext_design"
            android:hint="Juan Dela Cruz"
            android:inputType="textPersonName"
            android:textAlignment="center"
            android:textColor="@android:color/black"
            android:textColorHint="@android:color/darker_gray"
            android:textSize="18sp"
            tools:ignore="HardcodedText" />

        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="State:"
            android:textColor="@android:color/white"
            tools:ignore="HardcodedText" />

        <EditText
            android:id="@+id/createnewuser_address_state"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="10dp"
            android:background="@drawable/edittext_design"
            android:hint="Davao Del Sur"
            android:inputType="textPostalAddress"
            android:textAlignment="center"
            android:textColor="@android:color/black"
            android:textColorHint="@android:color/darker_gray"
            android:textSize="18sp"
            tools:ignore="HardcodedText" />

        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="City:"
            android:textColor="@android:color/white"
            tools:ignore="HardcodedText" />

        <EditText
            android:id="@+id/createnewuser_address_city"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="10dp"
            android:background="@drawable/edittext_design"
            android:hint="Davao City"
            android:inputType="textPostalAddress"
            android:textAlignment="center"
            android:textColor="@android:color/black"
            android:textColorHint="@android:color/darker_gray"
            android:textSize="18sp"
            tools:ignore="HardcodedText" />

        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="Home Address:"
            android:textColor="@android:color/white"
            tools:ignore="HardcodedText" />

        <EditText
            android:id="@+id/createnewuser_address_home"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="10dp"
            android:background="@drawable/edittext_design"
            android:hint="Blk.16 Pag-asa st.,Brgy. Forever"
            android:inputType="textPostalAddress"
            android:textAlignment="center"
            android:textColor="@android:color/black"
            android:textColorHint="@android:color/darker_gray"
            android:textSize="18sp"
            tools:ignore="HardcodedText" />

        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="Email:"
            android:textColor="@android:color/white"
            tools:ignore="HardcodedText" />

        <EditText
            android:id="@+id/createnewuser_email"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="10dp"
            android:background="@drawable/edittext_design"
            android:hint="cashBilis@CashBilis.com"
            android:inputType="textEmailAddress"
            android:textAlignment="center"
            android:textColor="@android:color/black"
            android:textColorHint="@android:color/darker_gray"
            android:textSize="18sp"
            tools:ignore="HardcodedText" />

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

            <TextView
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_gravity="center_vertical"
                android:layout_weight="8"
                android:text="Password:"
                android:textColor="@android:color/white"
                tools:ignore="HardcodedText" />

            <ImageButton
                android:id="@+id/createnewuser_show_password"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_weight="2"
                android:background="@android:color/transparent"
                android:padding="5dp"
                android:src="@drawable/ic_visibility"
                tools:ignore="ContentDescription" />

        </LinearLayout>

        <EditText
            android:id="@+id/createnewuser_password"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginBottom="10dp"
            android:background="@drawable/edittext_design"
            android:hint="************"
            android:inputType="textPassword"
            android:textAlignment="center"
            android:textColor="@android:color/black"
            android:textColorHint="@android:color/darker_gray"
            android:textSize="18sp"
            tools:ignore="HardcodedText" />

        <EditText
            android:id="@+id/createnewuser_password_confirm"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginBottom="10dp"
            android:background="@drawable/edittext_design"
            android:hint="Confirm your password"
            android:inputType="textPassword"
            android:textAlignment="center"
            android:textColor="@android:color/black"
            android:textColorHint="@android:color/darker_gray"
            android:textSize="18sp"
            tools:ignore="HardcodedText" />

        <Button
            android:id="@+id/createnewuser_btn"
            android:layout_width="match_parent"
            android:layout_height="60dp"
            android:background="@drawable/button"
            android:text="CREATE USER"
            android:textColor="@android:color/white"
            tools:ignore="HardcodedText" />

    </LinearLayout>
</ScrollView>

3 个答案:

答案 0 :(得分:0)

在活动中的mainfiest文件中添加android:windowSoftInputMode =“adjustPan” 并使用在editx中使用的edit xml   机器人:SINGLELINE = “真”

答案 1 :(得分:0)

我认为这是因为你同时保留了“adjustResize | adjustPan”。

从Androidmainfest.xml中删除adjustPan (例如:机器人:windowSoftInputMode = “stateAlwaysHidden | adjustResize”) 还删除了context.getWindow()。setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);来自你的java文件。

我认为这会对你有所帮助。

答案 2 :(得分:0)

您应该尝试在 scrollView 上使用 addOnLayoutChangeListener ,如下所示:

scrollView.addOnLayoutChangeListener(new View.OnLayoutChangeListener() {
            @Override
            public void onLayoutChange(View v, int left, int top, int right, int bottom, int oldLeft, int oldTop, int oldRight, int oldBottom) {
                if (bottom < oldBottom) {
                    scrollView.postDelayed(new Runnable() {
                        @Override
                        public void run() {
                            scrollView.fullScroll(ScrollView.FOCUS_DOWN);
                        }
                    }, 100);
                }
            }
        });