Клавиатура Android Soft плавает только определенной раскладки

У меня есть макет, код ниже

<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:app="http://schemas.android.com/apk/res-auto">
<!--some stuff here-->

<LinearLayout
    android:id="@+id/layout1"
    android:layout_alignParentBottom="true"
    android:layout_above="@+id/layout2"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal">
    <EditText
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="5"
        />
    <ImageButton
        android:layout_width="50dp"
        android:layout_height="50dp"
        android:scaleType="fitStart"
        android:layout_marginLeft="5dp"
        style="@style/Base.Widget.AppCompat.Button.Borderless"
        android:src="@drawable/ic_menu_send"/>
</LinearLayout>

<LinearLayout
    android:id="@+id/layout2"
    android:layout_alignParentBottom="true"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal">
    <!--some stuff here-->
</LinearLayout>
</RelativeLayout>

В приведенном выше коде, когда клавиатура показывает, я хочуlayout2 остаться вbottom а такжеlayout1 вgo up with keyboard, если я добавлюandroid:windowSoftInputMode="adjustPan|adjustResize" оба макета остаются в нижней части. пожалуйста помоги

 Krunal Patel09 июл. 2016 г., 13:46
пожалуйста, поставьте снимок экрана.
 Ironman17 июл. 2016 г., 08:57
@farhan latheef смотри мой ответ ниже, я подробно объясню.

Ответы на вопрос(6)

туре и показать их снова, когда программная клавиатура отключена (layout2 на xml)

Удалить и эту строку

android:windowSoftInputMode="adjustPan|adjustResize"

это будет работать, это просто, я все еще ищу тебя

используйте это, и скажите мне, если вы обнаружите какие-либо трудности

    <?xml version="1.0" encoding="utf-8"?>

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <!--some stuff here-->
    <ScrollView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content">

        <LinearLayout
            android:id="@+id/layout1"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_above="@+id/layout2"
            android:layout_alignParentBottom="true"
            android:orientation="horizontal">

            <EditText
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="5" />

            <ImageButton
                style="@style/Base.Widget.AppCompat.Button.Borderless"
                android:layout_width="50dp"
                android:layout_height="50dp"
                android:layout_marginLeft="5dp"
                android:scaleType="fitStart"
                android:src="@drawable/ic_menu_send" />
        </LinearLayout>
    </ScrollView>

    <LinearLayout
        android:id="@+id/layout2"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:orientation="horizontal">
        <!--some stuff here-->
    </LinearLayout>
</RelativeLayout>
Решение Вопроса

как вы можете сказать это не работа

android:windowSoftInputMode="adjustPan|adjustResize"

просто измени это

android:windowSoftInputMode="stateHidden"

и еще одна вещь в вашей схеме ниже

<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:app="http://schemas.android.com/apk/res-auto">
<!--some stuff here-->

<LinearLayout
    android:id="@+id/layout1"
    android:layout_alignParentBottom="true"
    android:layout_above="@+id/layout2"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal">
    <EditText
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="5"
        />
    <ImageButton
        android:layout_width="50dp"
        android:layout_height="50dp"
        android:scaleType="fitStart"
        android:layout_marginLeft="5dp"
        style="@style/Base.Widget.AppCompat.Button.Borderless"
        android:src="@drawable/ic_menu_send"/>
</LinearLayout>

<LinearLayout
    android:id="@+id/layout2"
    android:layout_alignParentBottom="true"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
    android:background="@color/colorPrimary">
    <!--some stuff here-->
</LinearLayout>
</RelativeLayout>
Иметь ввиду :

Когда вы применили это свойствоandroid:layout_above="@+id/layout2" вlayout1 вашейLinearLayout затем удалите это свойствоandroid:layout_alignParentBottom="true" тебе это не нужно.

Итак, теперь это выглядит так

 <LinearLayout
        android:id="@+id/layout1"
        android:layout_above="@+id/layout2"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal">

Замечания : я даюbackground color а такжеspecific height вLinearLayout 2 для вашего понимания.

Выход :

Нормальный экран

KeyBoard Open Screen.

ImProve:

смотри верхнее изображение, которое я делаюRed Mark это свойство создает проблему, иначе все работает нормально.

 Ironman17 июл. 2016 г., 10:54
@farhanlatheef см. мой обновленный ответ.
 Ironman17 июл. 2016 г., 10:57
@farhanlatheef рад помочь вам.
 farhan latheef17 июл. 2016 г., 10:47
его работа, вы можете добавить, что android: windowSoftInputMode = "stateHidden" делает, чтобы улучшить ответ

android:windowSoftInputMode="adjustPan|adjustResize"

А потом спрятатьlayout2 программно, когда софт клавиатура открыта. Когда программная клавиатура закроется, снова сделайтеlayout2 видимый.

Это даст пользователю опыт именно так, как вы хотите. Я не уверен, что есть какой-то другой способ. Но продолжайте искать. удачи

например: одна тема ссылается на AdjustPan для атрибута windowSoftInputMode.

а другая тема ссылается на AdjustResize для атрибута windowSoftInputMode.

 farhan latheef12 июл. 2016 г., 11:56
@stevmusic вы можете добавить пример кода

поместите эту строку в файл манифеста.

 android:windowSoftInputMode="stateHidden"

Ваш ответ на вопрос