打开软键盘时,BottomSheetDialogFragment会扩展到状态栏之外

时间:2019-02-06 13:35:57

标签: android bottom-sheet

我有一个框架布局,其中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 :(得分:0)

您应该改用以下行: dialog.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE | WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);