как сохранить полноэкранный режим при всплывающей клавиатуре

Недавно я работаю над своим полноэкранным проектом, и он реализован в режиме погружения. Он работает нормально и правильно, кроме одной части:

По мере появления клавиатуры отображается скрытая строка состояния.

Как я могу избавиться от этого? Я хочу, чтобы строка состояния скрывалась, когда я нажимаю текст редактирования в своем макете.

вот мой код:

    int flag = View.SYSTEM_UI_FLAG_LOW_PROFILE
                    |View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
                    |View.SYSTEM_UI_FLAG_LAYOUT_STABLE
                    |View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
                    |View.SYSTEM_UI_FLAG_FULLSCREEN
                    |View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
                    |View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        mDecorView = activity.getWindow().getDecorView();
        mDecorView.setSystemUiVisibility(flag);     
        mDecorView.setOnSystemUiVisibilityChangeListener(
            new View.OnSystemUiVisibilityChangeListener() {
            @Override
            public void onSystemUiVisibilityChange(int visibility) {
                if ((visibility & View.SYSTEM_UI_FLAG_HIDE_NAVIGATION) != 0) {
                    mDecorView.setSystemUiVisibility(flag);
                }
            }
        });
    }

    @Override
    public void onWindowFocusChanged(boolean hasFocus) {
        super.onWindowFocusChanged(hasFocus);
        if ((visibility & View.SYSTEM_UI_FLAG_HIDE_NAVIGATION) != 0) {
            mDecorView.setSystemUiVisibility(flag);
        }
    }

У него должно быть какое-то обходное решение. Я видел, что некоторые приложения хорошо скрывают строку состояния, даже когда всплывает клавиатура.

Есть идеи, как это решить?


person Timothy    schedule 31.08.2015    source источник
comment
Я думаю, что когда клавиатура поднята, кнопка возврата и т. Д. Поднимется, чтобы вы могли закрыть клавиатуру, а также строку состояния ...   -  person DavidBalas    schedule 31.08.2015
comment
Я думаю, что это функциональность иммерсивного режима. Но посмотрите этот пост, возможно, вы могли бы получить полезную информацию stackoverflow.com/questions/21164836/   -  person Víctor Martín    schedule 31.08.2015


Ответы (1)


вы должны использовать <ScrollView> в качестве основного макета. пример:

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

или используйте этот код в AndroidManiFest.xml:

<activity
     android:windowSoftInputMode="adjustNothing">
</activity>
person سعید .م    schedule 08.01.2018