在dialog中存在一个editText,当键盘出现后,键盘会覆盖焦点以下的dialog的解决办法

问题: 在dialog中存在一个editText,当键盘出现后,键盘会覆盖焦点以下的dialog

解决思路:ajustResize会重新布局当前窗口,且需要当前dialog不是浮动的。

解决方案:为创建的bottomSheetDialog设置自定style,代码如下

<style name="BottomSheetEdit" parent="Theme.Design.Light.BottomSheetDialog">
    <item name="android:windowIsFloating">false</item>
    <item name="android:statusBarColor">@android:color/transparent</item>
    <item name="android:windowSoftInputMode">adjustResize</item>
</style>

    bottomSheetDialog = new BottomSheetDialog(this, R.style.BottomSheetEdit);
 

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
您可以在DialogEditText设置一个OnEditorActionListener,然后在监听器捕获IME_ACTION_DONE事件。当用户点击键盘上的回车键时,该事件被触发。您可以在该事件的回调方法调用Dialog的onPositiveButtonClick方法,这样就可以触发Dialog的确定按钮事件并执行所需的操作。下面是一个示例代码: ``` AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setTitle("Dialog Title"); final EditText editText = new EditText(this); editText.setOnEditorActionListener(new TextView.OnEditorActionListener() { @Override public boolean onEditorAction(TextView v, int actionId, KeyEvent event) { if (actionId == EditorInfo.IME_ACTION_DONE) { // 触发Dialog的确定按钮事件 dialog.getButton(DialogInterface.BUTTON_POSITIVE).performClick(); return true; } return false; } }); builder.setView(editText); builder.setPositiveButton("OK", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { // 执行你需要的操作 String text = editText.getText().toString(); Toast.makeText(MainActivity.this, "Text: " + text, Toast.LENGTH_SHORT).show(); } }); builder.setNegativeButton("Cancel", null); AlertDialog dialog = builder.create(); dialog.show(); ``` 在上面的代码,我们在DialogEditText设置了一个OnEditorActionListener,并在回调方法调用了Dialog的onPositiveButtonClick方法。在Dialog的确定按钮事件,我们可以像平常一样执行我们需要的操作。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值