Android - при исчезновении клавиатуры остается пустое место

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

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

введите здесь описание изображения

с клавиатурой:

введите здесь описание изображения

клавиатура убрана:

введите здесь описание изображения

Я никогда не видел этого раньше, поэтому я даже не знаю, с чего начать поиск. Это происходит как на 4.2.2, так и на 5.1

Другая важная информация заключается в том, что это пользовательский LinearLayout, который содержит все содержимое. Может быть, это как-то связано с этим. Я могу загрузить любой код, если это необходимо.

Это основная файловая оболочка макета.

<com.edgetechlabs.app_v2.MasterLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">

<!-- Menu (Drawer)-->
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:visibility="visible"
    android:layout_height="match_parent"
    android:orientation="vertical" >
     <ScrollView
        android:id="@+id/activity_main_menu_listview"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="@color/drawer_background"
        android:cacheColorHint="#00000000" >
     </ScrollView>
</LinearLayout>
<!-- Fragment Holder -->
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">
    <!-- This is where fragment will show up -->
    <FrameLayout
        android:id="@+id/fragment_master"
        android:layout_width="match_parent"
        android:layout_height="match_parent" >
    </FrameLayout>
</LinearLayout>

Это мой файл манифеста

<application
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >
    <activity
        android:name=".MasterActivity"
        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
</application>

person The4thIceman    schedule 07.05.2015    source источник
comment
Разместите также свой код.   -  person Anshul Tyagi    schedule 07.05.2015
comment
Вы слушаете и делаете что-то при открытии/закрытии SoftKeyboard?   -  person Ankit Bansal    schedule 07.05.2015
comment
Разместите также свой файл манифеста. Если вы используете android:windowSoftInputMode="adjustResize", это эффект изменения размера макета для всех макетов, но есть проблема с чем-то полупрозрачным/прозрачным...   -  person ecle    schedule 07.05.2015
comment
@AnkitBansal Это просто обычная клавиатура, не выполняющая никаких причудливых операций открытия/закрытия.   -  person The4thIceman    schedule 07.05.2015
comment
@eee В манифесте ничего нет относительно windowSoftInputMode. Является ли AdjustResize значением по умолчанию?   -  person The4thIceman    schedule 07.05.2015


Ответы (1)


я добавил

android:windowSoftInputMode="adjustPan"

в мой манифест в теге активности, и теперь он работает. Мне никогда не приходилось этого делать раньше, я думаю, что моя пользовательская раскладка каким-то образом мешала клавиатуре.

Благодаря комментарию @eee, который указал мне правильное направление

person The4thIceman    schedule 07.05.2015
comment
У меня похожая проблема, и эта строка не работает для меня - person Canberk Ozcelik; 06.03.2017
comment
@CanberkÖzçelik Прошло много времени с тех пор, как я просматривал этот код, и с тех пор вышло 2 новые версии Android. Так что с тех пор могло что-то измениться. - person The4thIceman; 06.03.2017
comment
Да, но если у кого-то аналогичная ситуация не решена, мой вопрос здесь: stackoverflow.com/q/42597256/4432872 - person Canberk Ozcelik; 07.03.2017
comment
У меня была та же проблема, но с AppBarLayout, после более чем 5-часового поиска решения этот ответ спас меня. если вышеописанное не сработало, попробуйте это android:windowSoftInputMode="adjustNothing|adjustPan" - person Gazzx; 09.09.2019
comment
что делать, если вы хотите изменить размер? - person hmac; 09.12.2020