【问题标题】:AdjustResize not working For Second EditTextAdjustResize 不适用于第二个 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_width="match_parent"
android:layout_height="match_parent"
tools:context="com.valai.school.activities.LogInActivity">

<ScrollView
    android:id="@+id/scrollView1"
    android:layout_width="match_parent"
    android:layout_height="match_parent">


    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content">


        <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_width="100dp"
            android:layout_height="100dp"
            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_width="match_parent"
            android:layout_height="match_parent"
            android:layout_below="@id/imgLogo"
            android:padding="15dp">

            <EditText
                android:id="@+id/edtUserName"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                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_width="match_parent"
                android:layout_height="wrap_content"
                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_width="match_parent"
                android:layout_height="wrap_content"
                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_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="@string/login_as"
                    android:textColor="@color/colorBlack"
                    android:textSize="16sp" />

                <RadioButton
                    android:id="@+id/radioBtnAdmin"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    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_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:checked="false"
                    android:gravity="center"
                    android:text="@string/parentText"
                    android:textColor="@color/colorBlack"
                    android:textSize="16sp" />

                <RadioButton
                    android:id="@+id/radioBtnTeacher"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    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_width="match_parent"
    android:layout_height="45dp"
    android:layout_alignParentBottom="true"
    android:background="@color/colorPrimary"
    android:text="@string/nextBtnText"
    android:textAllCaps="true"
    android:textColor="@color/colorWhite" />

【问题讨论】:

  • 测试用例在你的ScrollView中使用android:fillViewport="true"
  • 还是不行

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


【解决方案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_width="match_parent"
android:layout_height="match_parent">

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


    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content">


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

        <ImageView
            android:id="@+id/imgLogo"
            android:layout_width="100dp"
            android:layout_height="100dp"
            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_width="match_parent"
            android:layout_height="match_parent"
            android:layout_below="@id/imgLogo"
            android:layout_alignParentBottom="true"
            android:padding="15dp">

            <EditText
                android:id="@+id/edtUserName"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                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_width="match_parent"
                android:layout_height="wrap_content"
                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_width="match_parent"
                android:layout_height="wrap_content"
                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_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="Login as"
                    android:textColor="@android:color/black"
                    android:textSize="16sp" />

                <RadioButton
                    android:id="@+id/radioBtnAdmin"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    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_width="wrap_content"
                    android:layout_height="wrap_content"
                    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_width="wrap_content"
                    android:layout_height="wrap_content"
                    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_width="match_parent"
    android:layout_height="45dp"
    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 之后执行所以它不会找到
  • 谢谢伙计,它正在工作,不知道为什么它显示错误
  • 不客气。
猜你喜欢
  • 2020-02-26
  • 1970-01-01
  • 1970-01-01
  • 2017-01-07
  • 1970-01-01
  • 2013-01-09
  • 2019-09-08
  • 2015-08-25
  • 1970-01-01
相关资源
最近更新 更多