我正在使用BottomSheetDialog从客户那里获取一些输入,当用户单击TextInputLayout时,我的视图包含TextInputLayout和TextInputLayout下方的按钮,下面的按钮被键盘隐藏,所以我需要键盘上方的那个按钮,尝试了很多可能性,但是无法修复它。附上有关它的照片。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();}
2 回答
慕妹3242003
TA贡献1824条经验 获得超6个赞
在您的活动 java 类中的 onCreate() 方法上使用以下方法。
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);
几天前,我遇到了同样的问题。然后在我的onCreate()方法中使用这部分代码,那么问题就解决了。
样本:
qq_遁去的一_1
TA贡献1725条经验 获得超7个赞
有几种方法可以实现这一点:
1.将以下代码写入您的 Android Manifest 文件中的<activity>
标签下:
android:windowSoftInputMode="stateHidden|adjustResize"
2.将以下代码写入您onCreate()
的活动方法中:
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);
我希望它对你有用。
添加回答
举报
0/150
提交
取消