Android - настроить scrollview, когда клавиатура для Android 5.0 (леденец)

У меня проблема с леденцом на Android, экран не регулирует размер, когда появляется экранная клавиатура.

Это мой пример манифеста из одного из действий, которые я сделал:

android:windowSoftInputMode="stateAlwaysHidden|adjustResize" 

Есть ли что-то новое, что добавлено, и мы должны учитывать Android 5.0? Scrollview отлично работает на android < 5.0.

Ответ 1

проблема заключалась в том, что она не работала с полупрозрачной панелью состояния, и мне пришлось установить

 android:fitsSystemWindows="true"

в моем основном макете

Ответ 2

Для парня, который все еще имеет эту проблему, даже с android:fitsSystemWindows="true" в ScrollView.

Я нашел несколько способов решить эту проблему:

  • используйте как root fragment.xml layout RelativeLayour и поместите android:fitsSystemWindows="true" внутрь. ScrollView используется как ребенок RelativeLayour.
<RelativeLayout android:fitsSystemWindows="true">
  <ScrollView/>
</RelativeLayout>
  1. используйте NestedScrollView вместо ScrollView.

Оба параметра должны использоваться с android:windowSoftInputMode="adjustResize" и работают на Android 5 с флагом <item name="android:windowTranslucentStatus">true</item>. `

Ответ 3

Ничего из того, что я пробовал, не сработало, и я прошел через все возможные сочетания различных параметров манифеста и т.д. безрезультатно.

Немного взломанный, но он прекрасно работает для меня:

((RelativeLayout) findViewById(R.id.rootLayout)).addOnLayoutChangeListener(new View.OnLayoutChangeListener() {
            @Override
            public void onLayoutChange(View v, int left, int top, int right, int bottom, int oldLeft, int oldTop, int oldRight, int oldBottom) {
                scrollToLatest(); // Do your scrolling!
            }
        });