AdjustResize 不适用于第二个 EditText

Posted

技术标签:

【中文标题】AdjustResize 不适用于第二个 EditText【英文标题】:AdjustResize not working For Second EditText 【发布时间】:2019-01-25 06:32:11 【问题描述】:

我在登录页面中有两个 EditText。第一次只有一个可见。当我们打开 Activity 请求焦点到第一个 EditText 和下一个按钮时位于 EditText 下方。当我们单击下一个按钮时第二个 Edittext 将可见。按钮不显示在第二个 EditText 下方。它隐藏了第二个 Edittext。我想显示在第二个 Edittext 下面 这是我的代码:

<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_
android:layout_
tools:context="com.valai.school.activities.LogInActivity">

<ScrollView
    android:id="@+id/scrollView1"
    android:layout_
    android:layout_>


    <RelativeLayout
        android:layout_
        android:layout_>


        <TextView
            android:id="@+id/toolbar_title_login"
            style="@style/Toolbar"
            android:background="@color/colorPrimary"
            android:gravity="center"
            android:text="@string/signInBtnText"
            android:textAllCaps="false"
            android:textColor="@color/colorWhite"
            android:textSize="18sp"
            android:textStyle="bold"
            tools:ignore="RelativeOverlap" />

        <ImageView
            android:id="@+id/imgLogo"
            android:layout_
            android:layout_
            android:layout_below="@id/toolbar_title_login"
            android:layout_centerInParent="true"
            android:layout_marginTop="25dp"
            android:contentDescription="@string/app_name"
            android:src="@mipmap/ic_launcher" />

        <RelativeLayout
            android:layout_
            android:layout_
            android:layout_below="@id/imgLogo"
            android:padding="15dp">

            <EditText
                android:id="@+id/edtUserName"
                android:layout_
                android:layout_
                android:layout_gravity="bottom"
                android:layout_marginTop="50dp"
                android:background="@drawable/edit_text_style"
                android:drawableLeft="@drawable/ic_user_name_24dp"
                android:drawablePadding="10dp"
                android:drawableStart="@drawable/ic_user_name_24dp"
                android:hint="@string/userNameHint"
                android:inputType="textEmailAddress"
                android:padding="10dp"
                android:textColor="@android:color/black" />

            <EditText
                android:id="@+id/edtPassword"
                android:layout_
                android:layout_
                android:layout_below="@+id/edtUserName"
                android:layout_gravity="bottom"
                android:layout_marginTop="15dp"
                android:background="@drawable/edit_text_style"
                android:drawableLeft="@drawable/ic_password_24dp"
                android:drawablePadding="10dp"
                android:drawableStart="@drawable/ic_password_24dp"
                android:hint="@string/passwordHint"
                android:inputType="textPassword"
                android:padding="10dp"
                android:textColor="@android:color/black"
                android:visibility="gone" />

            <RadioGroup
                android:id="@+id/radioGroupLogInAs"
                android:layout_
                android:layout_
                android:layout_below="@+id/edtPassword"
                android:layout_marginTop="15dp"
                android:gravity="center_vertical"
                android:orientation="horizontal"
                android:visibility="gone">

                <TextView
                    android:id="@+id/tv"
                    android:layout_
                    android:layout_
                    android:text="@string/login_as"
                    android:textColor="@color/colorBlack"
                    android:textSize="16sp" />

                <RadioButton
                    android:id="@+id/radioBtnAdmin"
                    android:layout_
                    android:layout_
                    android:layout_marginEnd="5dp"
                    android:layout_marginRight="5dp"
                    android:checked="false"
                    android:text="@string/adminText"
                    android:textColor="@color/colorBlack"
                    android:textSize="16sp" />

                <RadioButton
                    android:id="@+id/radioBtnParent"
                    android:layout_
                    android:layout_
                    android:checked="false"
                    android:gravity="center"
                    android:text="@string/parentText"
                    android:textColor="@color/colorBlack"
                    android:textSize="16sp" />

                <RadioButton
                    android:id="@+id/radioBtnTeacher"
                    android:layout_
                    android:layout_
                    android:layout_marginLeft="5dp"
                    android:layout_marginStart="5dp"
                    android:checked="false"
                    android:text="@string/teacherText"
                    android:textColor="@color/colorBlack"
                    android:textSize="16sp" />
            </RadioGroup>

        </RelativeLayout>


    </RelativeLayout>

</ScrollView>

<Button
    android:id="@+id/btnSignIn"
    android:layout_
    android:layout_
    android:layout_alignParentBottom="true"
    android:background="@color/colorPrimary"
    android:text="@string/nextBtnText"
    android:textAllCaps="true"
    android:textColor="@color/colorWhite" />

【问题讨论】:

测试用例在你的ScrollView中使用android:fillViewport="true" 还是不行 【参考方案1】:

尝试以下方法:

<?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:layout_
android:layout_>

<ScrollView
    android:id="@+id/scrollView1"
    android:layout_
    android:layout_
    android:layout_above="@id/btnSignIn"
    android:fillViewport="true">


    <RelativeLayout
        android:layout_
        android:layout_>


        <TextView
            android:id="@+id/toolbar_title_login"
            android:background="@color/colorPrimary"
            android:gravity="center"
            android:text="Sign In"
            android:textAllCaps="false"
            android:layout_
            android:layout_
            android:textColor="@android:color/white"
            android:textSize="18sp"
            android:textStyle="bold"
            tools:ignore="RelativeOverlap" />

        <ImageView
            android:id="@+id/imgLogo"
            android:layout_
            android:layout_
            android:layout_below="@id/toolbar_title_login"
            android:layout_centerInParent="true"
            android:layout_marginTop="25dp"
            android:contentDescription="@string/app_name"
            android:src="@mipmap/ic_launcher" />

        <RelativeLayout
            android:layout_
            android:layout_
            android:layout_below="@id/imgLogo"
            android:layout_alignParentBottom="true"
            android:padding="15dp">

            <EditText
                android:id="@+id/edtUserName"
                android:layout_
                android:layout_
                android:layout_gravity="bottom"
                android:layout_marginTop="50dp"
                android:drawablePadding="10dp"
                android:hint="EDT1"
                android:inputType="textEmailAddress"
                android:padding="10dp"
                android:textColor="@android:color/black" />

            <EditText
                android:id="@+id/edtPassword"
                android:layout_
                android:layout_
                android:layout_below="@+id/edtUserName"
                android:layout_gravity="bottom"
                android:layout_marginTop="15dp"
                android:drawablePadding="10dp"
                android:inputType="textPassword"
                android:padding="10dp"
                android:hint="EDT2"
                android:textColor="@android:color/black"
                android:visibility="gone" />

            <RadioGroup
                android:id="@+id/radioGroupLogInAs"
                android:layout_
                android:layout_
                android:layout_below="@+id/edtPassword"
                android:layout_marginTop="15dp"
                android:gravity="center_vertical"
                android:orientation="horizontal"
                android:visibility="gone">

                <TextView
                    android:id="@+id/tv"
                    android:layout_
                    android:layout_
                    android:text="Login as"
                    android:textColor="@android:color/black"
                    android:textSize="16sp" />

                <RadioButton
                    android:id="@+id/radioBtnAdmin"
                    android:layout_
                    android:layout_
                    android:layout_marginEnd="5dp"
                    android:layout_marginRight="5dp"
                    android:checked="false"
                    android:text="Admin Text"
                    android:textColor="@android:color/black"
                    android:textSize="16sp" />

                <RadioButton
                    android:id="@+id/radioBtnParent"
                    android:layout_
                    android:layout_
                    android:checked="false"
                    android:gravity="center"
                    android:text="Parent Text"
                    android:textColor="@android:color/black"
                    android:textSize="16sp" />

                <RadioButton
                    android:id="@+id/radioBtnTeacher"
                    android:layout_
                    android:layout_
                    android:layout_marginLeft="5dp"
                    android:layout_marginStart="5dp"
                    android:checked="false"
                    android:text="Teacher Text"
                    android:textColor="@android:color/black"
                    android:textSize="16sp" />
            </RadioGroup>

        </RelativeLayout>


    </RelativeLayout>

</ScrollView>

<Button
    android:id="@+id/btnSignIn"
    android:layout_
    android:layout_
    android:layout_alignParentBottom="true"
    android:background="@color/colorPrimary"
    android:text="Next Button Text"
    android:textAllCaps="true"
    android:textColor="@android:color/white" />

</RelativeLayout>

【讨论】:

android:layout_above="@id/btnSignIn" 未找到资源 我没有收到这样的错误。 btnSignIn 存在且位于末尾。 但是 btnSignIn 会在 ScrollView Right 之后执行所以它不会找到 谢谢伙计,它正在工作,不知道为什么它显示错误 不客气。

以上是关于AdjustResize 不适用于第二个 EditText的主要内容,如果未能解决你的问题,请参考以下文章

windowSoftInputMode:当键盘提示文本时,adjustResize 不适用于数字键盘

text windowSoftInputMode =“adjustResize”不适用于半透明动作/导航栏

脚本不适用于引用组件的第二个实例

Vuetify 主题背景不适用于第二个组件

JQuery.Dirty 字段不适用于第一个“updateFormState”,但适用于第二个

Python 中的 focus_set() 不适用于第二个窗口