android - 当键盘启动时,ScrollView不会滚动

时间:2016-05-30 20:41:19

标签: android android-layout android-xml android-scrollview

我在Android Studio中有以下xml文件:

activity_register.xml

<?xml version="1.0" encoding="utf-8"?>


<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/register"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    tools:context="mk.klikniobrok.klikniobrok.RegisterActivity">

    <ScrollView
        android:id="@+id/ScrollView01"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:paddingBottom="48dp">


        <RelativeLayout
            android:id="@+id/content"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="@dimen/layout_top_margin"
            android:orientation="vertical"
            android:paddingLeft="@dimen/activity_horizontal_margin"
            android:paddingRight="@dimen/activity_horizontal_margin"
            android:paddingTop="@dimen/activity_vertical_margin">

            <LinearLayout
                android:id="@+id/input"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_centerHorizontal="true"
                android:orientation="vertical">


                <EditText
                    android:id="@+id/name"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:hint="@string/name_hint"
                    android:inputType="text"
                    android:paddingBottom="8dp"
                    android:paddingTop="8dp"
                    android:textSize="@dimen/input_text_size" />

                <EditText
                    android:id="@+id/username"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:hint="@string/user_hint"
                    android:inputType="text"
                    android:paddingBottom="8dp"
                    android:paddingTop="8dp"
                    android:textSize="@dimen/input_text_size" />

                <EditText
                    android:id="@+id/password"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:hint="@string/pass_hint"
                    android:inputType="textPassword"
                    android:paddingBottom="8dp"
                    android:paddingTop="8dp"
                    android:textSize="@dimen/input_text_size" />

                <EditText
                    android:id="@+id/repeatPwd"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:hint="@string/repeatPwd_hint"
                    android:inputType="textPassword"
                    android:paddingBottom="8dp"
                    android:paddingTop="8dp"
                    android:textSize="@dimen/input_text_size" />

                <EditText
                    android:id="@+id/email"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:hint="@string/email_hint"
                    android:inputType="textEmailAddress"
                    android:paddingBottom="8dp"
                    android:paddingTop="8dp"
                    android:textSize="@dimen/input_text_size" />

                <EditText
                    android:id="@+id/phone"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:hint="@string/phone_hint"
                    android:inputType="phone"
                    android:paddingBottom="8dp"
                    android:paddingTop="8dp"
                    android:textSize="@dimen/input_text_size" />

            </LinearLayout>
        </RelativeLayout>
    </ScrollView>

    <LinearLayout
        android:id="@+id/footer"
        android:layout_width="match_parent"
        android:layout_height="48dp"
        android:layout_alignParentBottom="true"
        android:background="@color/colorPrimary"
        android:gravity="end"
        android:orientation="horizontal"
        android:paddingBottom="2dp"
        android:paddingLeft="8dp"
        android:paddingRight="8dp"
        android:paddingTop="2dp">

        <Button
            android:id="@+id/registerButton"
            style="@style/RobotoBoldButtonStyle"
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:background="@drawable/ripple_transparent"
            android:text="РЕГИСТРИРАЈ СЕ"
            android:textSize="16sp" />
    </LinearLayout>
</RelativeLayout>

当键盘未启动时,我可以看到每个元素,但只要键盘出现,ScrollView就不会向下滚动以显示所覆盖的元素。我已经阅读了StackOverflow并添加了android:windowSoftInputMode =&#34; stateHidden | adjustResize&#34;到AndroidManifest.xml但它仍然不起作用。

问题是什么,我该如何解决?

2 个答案:

答案 0 :(得分:1)

请尝试在根元素上设置android:layout_height="match_parent"

你的根元素有android:layout_height="wrap_content"(根据你的孩子计算你的身高),它的主要孩子有android:layout_height="match_parent"(根据你的父母计算你的身高)。它看起来像鸡和蛋的问题,我想这就是为什么它适用于某些设备以及其他一些设备没有。

说实话,如果有效,我还没试过,但这就是我的结论。如果它没有帮助,我会再看看它。

答案 1 :(得分:0)

修正了问题是在LinearLayout中使用了上边距而不是元素的填充,显然这是一个问题。