BottomSheetDialogFragment расширяется за пределы строки состояния, когда открыта программная клавиатура - PullRequest
0 голосов
/ 06 февраля 2019

У меня был макет кадра с RecyclerView с верхней гравитацией и EditText с нижней гравитацией.Когда я открываю экранную клавиатуру, раскладка выходит за пределы строки состояния.Я хочу, чтобы клавиатура выдвигала только EditText, а не весь макет.Вот мой метод setupDialog:

public void setupDialog(Dialog dialog, int style) {
    super.setupDialog(dialog, style);

    dialog.setContentView(bottomSheetBinding.getRoot());

    dialog.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN);


    dialog.setOnShowListener(new DialogInterface.OnShowListener() {
        @Override
        public void onShow(DialogInterface dialog) {

            BottomSheetDialog d = (BottomSheetDialog) dialog;

            FrameLayout bottomSheet = (FrameLayout) d.findViewById(android.support.design.R.id.design_bottom_sheet);

            BottomSheetBehavior.from(bottomSheet)
                    .setState(BottomSheetBehavior.STATE_EXPANDED);
        }
    });
}

Я пытался настроить AdjustPan и AdjustResize, но не работает.

1 Ответ

0 голосов
/ 06 февраля 2019

Вы должны использовать эту строку вместо: dialog.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE | WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);

...