键盘显示时,布局不会向上移动

时间:2017-03-10 19:11:59

标签: java android layout

我的活动中有一个NestedScrollView,大约有7-8个编辑文本,我需要它们在键盘显示时向上移动。我这样做但是它不起作用

android:windowSoftInputMode="adjustPan|adjustResize"

activity.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/activity_login"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@color/colorPrimary"
    android:focusableInTouchMode="true"
    tools:context="com.amir_p.cafino.LoginActivity">

    <ImageView
        android:id="@+id/back_img"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:scaleType="centerCrop" />

    <View
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="@color/grayTransparent" />

    <android.support.v4.widget.NestedScrollView
        android:layout_width="match_parent"
        android:id="@+id/signup_layout"
        android:fillViewport="true"
        android:layout_height="wrap_content"
        android:visibility="gone">

        <LinearLayout
            android:id="@+id/register_layout"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:gravity="center_horizontal"
            android:orientation="vertical"
            android:padding="16dp">

            <android.support.design.widget.TextInputLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginTop="36dp"
                android:hint="نام و نام خانوادگی"
                android:textColorHint="@color/white">

                <android.support.design.widget.TextInputEditText
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:backgroundTint="@color/white" />
            </android.support.design.widget.TextInputLayout>

            [...]
        </LinearLayout>
    </android.support.v4.widget.NestedScrollView>
</RelativeLayout>

1 个答案:

答案 0 :(得分:0)

尝试为您的滚动视图添加android:fillViewport="true"

<android.support.v4.widget.NestedScrollView
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:fillViewport="true"
    android:visibility="visible">

并在清单中添加:

android:windowSoftInputMode="stateVisible|adjustResize"

你可以以编程方式关闭填充屏幕模式:

    getWindow().addFlags(WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN);
getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);

全屏模式不会调整大小。

或者你可以使用不同的主题:android:theme="@android:style/Theme.Black.NoTitleBar