猿问

键盘隐藏BottomSheetDialog

我正在使用BottomSheetDialog从客户那里获取一些输入,当用户单击TextInputLayout时,我的视图包含TextInputLayout和TextInputLayout下方的按钮,下面的按钮被键盘隐藏,所以我需要键盘上方的那个按钮,尝试了很多可能性,但是无法修复它。附上有关它的照片。

http://img.mukewang.com/61666fe20001714507391282.jpg

Java文件(活动)代码:


BottomSheetDialog customTipAmountBottomSheetDialog;

private void showCustomTipAmountBottomSheet() {

    customTipAmountBottomSheetDialog = new BottomSheetDialog(OrderActivity.this);

    View customTipAmountBottomSheetView = getLayoutInflater().inflate(R.layout.custom_tip_amount_bottom_sheet, null);

    customTipAmountBottomSheetDialog.setContentView(customTipAmountBottomSheetView);


    InputMethodManager imm = (InputMethodManager) this.getSystemService(Context.INPUT_METHOD_SERVICE);

    assert imm != null;

    imm.showSoftInput(binding.invoiceDialog.submit, InputMethodManager.RESULT_HIDDEN);


    TextInputLayout customTipAmountBSTIL = customTipAmountBottomSheetView.findViewById(R.id.customTipAmountBSTIL);

    EditText customTipAmountBSET = customTipAmountBottomSheetView.findViewById(R.id.customTipAmountBSET);

    ImageView submit_custom_tip_amount = customTipAmountBottomSheetView.findViewById(R.id.submit_custom_tip_amount);


    submit_custom_tip_amount.setOnClickListener(view -> {

        String amount = customTipAmountBSET.getText().toString();

        if (amount.length() > 0 && Integer.parseInt(amount) > 0) {

            int tipAmount = Integer.parseInt(amount);

            if (tipAmount > 0 && tipAmount < 51) {

                binding.invoiceDialog.customTipAmountTv.setText(tipAmount);

                captainTipAmount = tipAmount;

                customTipAmountBottomSheetDialog.dismiss();

            } else {

                customTipAmountBSTIL.setError("Amount should be less than 50");

            }

        } else {

            customTipAmountBSTIL.setError("Requires a valid amount");

        }

    });


    customTipAmountBottomSheetDialog.show();

}


MMTTMM
浏览 204回答 2
2回答

慕妹3242003

在您的活动 java 类中的 onCreate() 方法上使用以下方法。getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);几天前,我遇到了同样的问题。然后在我的onCreate()方法中使用这部分代码,那么问题就解决了。样本:

qq_遁去的一_1

有几种方法可以实现这一点:1.将以下代码写入您的 Android Manifest 文件中的<activity>标签下:android:windowSoftInputMode="stateHidden|adjustResize"2.将以下代码写入您onCreate()的活动方法中:getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);我希望它对你有用。
随时随地看视频慕课网APP

相关分类

Java
我要回答