如何在编辑文本聚焦且键盘打开时移动视图?



我有一个滚动视图

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:orientation="vertical"
tools:context=".LoginActivity">
<RelativeLayout
android:id="@+id/login_form"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="16dp"
android:focusableInTouchMode="true"
android:orientation="vertical">
<ImageView
android:layout_width="wrap_content"
android:layout_height="150dp"
android:layout_margin="55dp"
android:src="@drawable/sss" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:fontFamily="@font/helvetica_neue_cyr_roman"
android:padding="4dp"
android:text="@string/title_email"
android:textColor="@color/colorWhite"
android:textSize="14sp" />
<android.support.design.widget.TextInputLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:errorEnabled="true"
app:errorTextAppearance="@style/ErrorText"
app:hintEnabled="false"
app:passwordToggleEnabled="true"
app:passwordToggleTint="@color/colorAccent">
<AutoCompleteTextView
android:id="@+id/email"
android:layout_width="match_parent"
android:layout_height="46dp"
android:backgroundTint="@color/colorWhite"
android:fontFamily="@font/helvetica_neue_cyr_medium"
android:hint="@string/hint_email"
android:inputType="textEmailAddress"
android:maxLines="1"
android:singleLine="true"
android:textColor="@color/colorWhite"
android:textColorHint="@color/colorHint"
android:textSize="14sp" />
</android.support.design.widget.TextInputLayout>

<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:fontFamily="@font/helvetica_neue_cyr_roman"
android:padding="4dp"
android:text="@string/title_password"
android:textColor="@color/colorWhite"
android:textSize="14sp" />
<android.support.design.widget.TextInputLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:errorEnabled="true"
app:errorTextAppearance="@style/ErrorText"
app:hintEnabled="false"
app:passwordToggleEnabled="true"
app:passwordToggleTint="@color/colorAccent">
<EditText
android:id="@+id/password"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:backgroundTint="@color/colorWhite"
android:fontFamily="@font/helvetica_neue_cyr_medium"
android:hint="@string/hint_password"
android:imeActionId="6"
android:imeActionLabel="@string/action_sign_in"
android:imeOptions="actionUnspecified"
android:inputType="textPassword"
android:maxLines="1"
android:singleLine="true"
android:textColor="@color/colorWhite"
android:textColorHint="@color/colorHint"
android:textSize="14sp" />
</android.support.design.widget.TextInputLayout>
<Button
android:id="@+id/sign_in_button"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/button_shape"
android:fontFamily="@font/helvetica_neue_cyr_medium"
android:text="@string/action_sign_in"
android:textAllCaps="false"
android:textColor="@color/colorWhite"
android:textSize="16sp" />
</LinearLayout>
</RelativeLayout>

而且我在显示我到底需要什么方面遇到了一些问题。

这是视图默认的外观不可滚动

点击电子邮件编辑文本可滚动

密码编辑文本单击。可滚动

这是我希望应用程序看起来像的屏幕截图

通过说我的意思 - 如果我点击编辑文本,我需要将我的视图移动到相同的位置。键盘消失后,我需要视图才能进入默认位置。

打开键盘后,我不需要在滚动视图。

我一直在尝试通过添加来实现这一目标

android:windowSoftInputMode="adjustResize"

android:windowSoftInputMode="adjustPan"

到清单

甚至有可能制作吗?

谢谢。

我相信使用正确的布局配置(也许只是约束布局而不是滚动?(,您可以在单击其中一个字段时以编程方式隐藏Visibility.GONE徽标,并在字段失去焦点时恢复徽标。

最新更新