Ответ 1
Добавьте этот режим ввода в файл манифеста.
android:windowSoftInputMode="stateHidden|adjustResize"
Это мой экран с одной кнопкой, скрытой за клавиатурой.
Я хочу точно так же, но прокручиваю. -
Всякий раз, когда клавиатура открывается, я хочу сделать ее такой же, как на изображении. Но вместо этого сделать это прокручиваемым, чтобы пользователь мог прокручивать, чтобы просмотреть нижнюю часть экрана (включая кнопку), даже когда клавиатура открыта.
Я попробовал -
android:windowSoftInputMode="adjustResize"
но это сдвигает нижнюю часть вверх, всякий раз, когда клавиатура открывается.
как на этом изображении -
Я не хочу этого - (смещение кнопки Create Account
вверх, когда клавиатура открыта)
Кнопка CREATE ACCOUNT должна быть видимой после прокрутки.
Вот макет -
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/root_layout"
android:fillViewport="true"
>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:weightSum="10"
>
<LinearLayout android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="9"
android:orientation="vertical"
android:gravity="center_vertical|center_horizontal"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:orientation="vertical">
<EditText
android:id="@+id/et_username_or_email"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/et_hint_username_or_email"
android:inputType="textEmailAddress"
android:singleLine="true"
/>
<EditText
android:id="@+id/et_pswd"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/et_hint_password"
android:password="true"
android:singleLine="true"
/>
<Button
android:id="@+id/btn_sign_in"
android:layout_marginTop="10dp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/btn_sign_in"
android:background="@color/lighter_orange"
android:textColor="@android:color/white"/>
<TextView
android:layout_marginTop="10dp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/or"
android:gravity="center_horizontal"
android:textColor="@android:color/black"/>
<Button
android:id="@+id/btn_take_a_peek"
android:layout_marginTop="10dp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/btn_take_a_peek"
android:textColor="@android:color/white"
android:background="@color/button_gray"/>
<TextView
android:layout_marginTop="15dp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/forgot_password"
android:gravity="center_horizontal"
android:textColor="@color/text_gray"/>
</LinearLayout>
</LinearLayout>
<LinearLayout android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:orientation="vertical">
<Button
android:id="@+id/btn_create_account"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:text="@string/btn_create_account"
android:background="@color/button_very_light_orange"
android:textColor="@android:color/white"/>
</LinearLayout>
</LinearLayout>
</ScrollView>
Пожалуйста, помогите мне исправить это.
Добавьте этот режим ввода в файл манифеста.
android:windowSoftInputMode="stateHidden|adjustResize"
У меня была та же проблема и она была решена.
Добавьте это в свой класс внутри тегов <activity>
в AndroidManifest в своем классе:
android:windowSoftInputMode="stateHidden|adjustResize">
или
<activity
android:name="com.app.app.RegisterScreen"
android:parentActivityName="com.app.app.LogInScreen"
android:windowSoftInputMode="stateHidden|adjustPan">
</activity>
Пример:
<activity
android:name="com.app.yourapp.LogInScreen"
android:windowSoftInputMode="stateHidden|adjustPan">
</activity>
Это работает для меня.
Сделайте корень вашего представления
<ScrollView
android:layout_width="match_parent"
android:layout_height="match_parent">
...
</ScrollView>
См. это, чтобы выбрать соответствующий режим для вашего экрана. https://developer.android.com/guide/topics/manifest/activity-element.html#wsoft
Я надеюсь, что это будет полезно для вас. Я уже разработал такой тип макета. Я не редактировал ваш макет.
<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res/com.clearfly.groupfone"
android:id="@+id/registration_view"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@android:color/white"
android:fillViewport="true"
android:orientation="vertical" >
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="@android:color/white"
android:orientation="vertical" >
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginBottom="@dimen/activity_horizontal_margin"
android:orientation="vertical"
android:weightSum="1" >
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="0dp"
android:layout_marginTop="40dp"
android:layout_weight="0.4"
android:gravity="center"
android:orientation="vertical" >
<ImageView
android:id="@+id/ivProfilePicture"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:src="@drawable/ic_launcher" >
</ImageView>
</LinearLayout>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="0dp"
android:layout_marginTop="20dp"
android:layout_weight="0.6"
android:orientation="vertical"
android:weightSum="1" >
<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_marginLeft="20dp"
android:layout_marginRight="20dp"
android:layout_weight="0.2"
android:orientation="vertical" >
<EditText
android:id="@+id/firstname_edit"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:cursorVisible="true"
android:hint="First Name"
android:inputType="textCapWords|textPersonName|textNoSuggestions"
android:maxLength="50"
android:paddingLeft="40dp"
android:singleLine="true"
android:textColor="@android:color/black"
/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_marginLeft="20dp"
android:layout_marginRight="20dp"
android:layout_weight="0.2"
android:orientation="vertical" >
<EditText
android:id="@+id/lastname_edit"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:cursorVisible="true"
android:hint="Last Name"
android:inputType="textCapWords|textPersonName|textNoSuggestions"
android:maxLength="50"
android:paddingLeft="40dp"
android:singleLine="true"
android:textColor="@android:color/black"
/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_marginLeft="20dp"
android:layout_marginRight="20dp"
android:layout_weight="0.2"
android:orientation="vertical" >
<EditText
android:id="@+id/email_edit"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:cursorVisible="true"
android:hint="email"
android:inputType="textEmailAddress"
android:maxLength="255"
android:paddingLeft="40dp"
android:singleLine="true"
android:textColor="@android:color/black"
/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_marginLeft="20dp"
android:layout_marginRight="20dp"
android:layout_weight="0.2"
android:orientation="vertical" >
<EditText
android:id="@+id/password_edit"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:cursorVisible="true"
android:hint="Password"
android:inputType="textPassword"
android:maxLength="20"
android:paddingLeft="40dp"
android:singleLine="true"
android:textColor="@android:color/black"
/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_marginLeft="20dp"
android:layout_marginRight="20dp"
android:layout_weight="0.2"
android:orientation="vertical" >
<EditText
android:id="@+id/verify_password_edit"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:cursorVisible="true"
android:hint="Verify pwd"
android:inputType="textPassword"
android:maxLength="20"
android:paddingLeft="40dp"
android:singleLine="true"
android:textColor="@android:color/black"/>
</LinearLayout>
</LinearLayout>
</LinearLayout>
</LinearLayout>
</ScrollView>
Я пробовал ваш код, а также у меня такая же проблема Здесь
Здесь я делаю некоторую коррекцию в вашем коде, и значения были кодами как фиктивные (строки, цвета ect)... Фрагмент кода:
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/root_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fillViewport="true" >
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent" >
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center_vertical|center_horizontal"
android:orientation="vertical"
android:padding="10dp" >
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:orientation="vertical" >
<EditText
android:id="@+id/et_username_or_email"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="HAI"
android:inputType="textEmailAddress"
android:singleLine="true" />
<EditText
android:id="@+id/et_pswd"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="HH"
android:password="true"
android:singleLine="true" />
<Button
android:id="@+id/btn_sign_in"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:background="#5465"
android:text="sigin"
android:textColor="@android:color/white" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:gravity="center_horizontal"
android:text="ORR"
android:textColor="@android:color/black" />
<Button
android:id="@+id/btn_take_a_peek"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:background="#ff8f43"
android:text="sfse"
android:textColor="@android:color/white" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="15dp"
android:gravity="center_horizontal"
android:text="Forgot"
android:textColor="#ec0974" />
</LinearLayout>
</LinearLayout>
<Button
android:id="@+id/btn_create_account"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:background="#ffd250"
android:text="Create Accounr"
android:textColor="@android:color/white" />
</RelativeLayout>
</ScrollView>
Также задайте нижеприведенный параметр вашей активности в вашем манифесте
Android: windowSoftInputMode = "adjustPan"
** Отредактировано как внешний вид внешнего слоя - Relative layout внутри scrollview, и я управлял кнопкой Create Account в качестве родительского дна.
Пожалуйста, попробуйте в реальном устройстве.
Попробуйте это и дайте отзыв! Счастливое кодирование..