У меня есть форма входа в мое приложение (только EditText
для электронной почты и еще одна для пароля и под его кнопкой), а так как клавиатура скрывает пароль, когда фокус находится по электронной почте, я хочу, чтобы пользователь чтобы иметь возможность прокручивать пальцем, а не просто щелкнуть по кнопке «Далее» на клавиатуре.Прокрутка содержимого, когда клавиатура видна
Так что я решил добавить ScrollView
и потому что я хочу, чтобы содержание быть выровнено вниз, я добавил LinearLayout
как родитель ScrollView
и добавил тяжести дна для Scrollview
.
XML-код для макета:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:background="@color/white"
android:layout_width="match_parent" android:layout_height="match_parent">
<ScrollView
android:layout_gravity="bottom"
android:fillViewport="true"
android:layout_width="match_parent" android:layout_height="wrap_content">
<EditText
android:id="@+id/et_name" android:textSize="@dimen/app_text_size_medium" android:textColorHint="@color/white"
android:hint="Enter email" android:inputType="text"
android:paddingTop="8dp"
android:imeOptions="actionNext" android:maxLines="1"
android:textColor="@color/white" android:alpha="0.5"
android:background="@android:color/transparent"
android:layout_width="match_parent" android:layout_height="wrap_content" />
<EditText
android:id="@+id/et_password" android:textSize="@dimen/app_text_size_medium"
android:hint="@string/sign_in_password_hint" android:inputType="textPassword" android:textColorHint="@color/white"
android:textColor="@android:color/white" android:alpha="0.5"
android:background="@android:color/transparent"
android:imeOptions="actionDone" android:maxLines="1"
android:layout_weight="4"
android:layout_width="0dp" android:layout_height="wrap_content" />
<Button
android:id="@+id/btn_signin_submit"
android:text="@string/sign_in_button" android:textColor="@color/white" android:textSize="@dimen/app_text_size_normal"
android:textAllCaps="false"
android:background="@drawable/selector_btn_sign_in"
android:layout_marginLeft="@dimen/spacing_large_app" android:layout_marginRight="@dimen/spacing_large_app"
android:layout_width="match_parent" android:layout_height="wrap_content" />
</LinearLayout>
</ScrollView>
Проблема заключается в том, что, когда один EditText получает фокус то макет он просто «мигает» все содержимое над клавиатурой и прокруткой не работая вообще.
Любая помощь по обеспечению плавной прокрутки?
Я не уверен, если это будет работать, но попробуйте добавить это свойство в объявлении деятельности внутри вашего AndroidManifest.xml:. android: windowSoftInputMode = "stateVisible | adjustResize" –
Спасибо за ответ, но у меня уже есть это внутри моего файла манифеста. – Mes
ScrollView не имеет смысла его удалить и добавить android: windowSoftInputMode = "stateVisible | adjustSpan" для вашей деятельности в manifeast –