在EditText中写入文本后,ScrollView向上滚动

时间:2015-09-17 08:30:55

标签: android android-layout android-scrollview

我有一个带有一些TextViews / EditTexts的ScrollView,以便构建一个Register表单。

当我点击我的EditText时,ScrollView按预期滚动(EditText就在软键盘上方)。

但如果我开始在其中键入一些文本,则顶部的ScrollView滚动(EditText被键盘覆盖)。

如果我删除了我输入的文字,ScrollView会再次滚动到好位置。

有人已经有这个问题吗?

这是我的布局:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <ScrollView
        android:layout_width="fill_parent"
        android:layout_height="fill_parent">

        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:gravity="center"
            android:orientation="vertical">

            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:weightSum="10"
                android:paddingTop="5dp"
                android:paddingBottom="5dp">

                <TextView
                    android:layout_width="0dp"
                    android:layout_height="wrap_content"
                    android:layout_weight="5"
                    android:drawableLeft="@drawable/my_drawable"
                    android:drawablePadding="5dp"
                    android:text="Some text"
                    android:textStyle="bold" />

                <LinearLayout
                    android:layout_width="0dp"
                    android:layout_height="wrap_content"
                    android:layout_weight="5"
                    android:orientation="vertical">

                    <Button
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:layout_gravity="center_vertical"
                        android:drawableLeft="@drawable/my_drawable_2"
                        android:text="My button"
                        android:textAllCaps="true" />

                    <EditText
                        android:background="@drawable/my_background"
                        android:padding="10dp"
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:layout_marginTop="16dp"
                        android:hint="1234567896324"
                        android:imeOptions="actionDone"
                        android:inputType="number"
                        android:maxLength="19"
                        android:singleLine="true" />

                    <TextView
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:text="Explanation"
                        android:textColor="#d3d3d3"
                        android:textSize="12sp" />
                </LinearLayout>

            </LinearLayout>

        </LinearLayout>

    </ScrollView>

</LinearLayout>

2 个答案:

答案 0 :(得分:0)

好吧,我通过更改此问题来解决问题:

android:windowSoftInputMode="adjustPan"

到此:

android:windowSoftInputMode="adjustResize"

感谢@Palejandro提示;)

答案 1 :(得分:0)

试试这个,它可能对你有帮助 -

<ScrollView
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">

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

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:paddingBottom="5dp"
            android:paddingTop="5dp"
            android:weightSum="10">

            <TextView
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="5"
                android:drawablePadding="5dp"
                android:text="Some text"
                android:textStyle="bold"/>

            <LinearLayout
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="5"
                android:orientation="vertical">

                <Button
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_gravity="center_vertical"
                    android:text="My button"
                    android:textAllCaps="true"/>

                <EditText
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_marginTop="16dp"
                    android:hint="1234567896324"
                    android:imeOptions="actionDone"
                    android:inputType="number"
                    android:maxLength="19"
                    android:padding="10dp"
                    android:singleLine="true"/>

                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="Explanation"
                    android:textColor="#d3d3d3"
                    android:textSize="12sp"/>
            </LinearLayout>

        </LinearLayout>

    </LinearLayout>

</ScrollView>