kongzue / DialogX

💬 DialogX dialog box component library, easy to use, more customizable, more scalable, easy to achieve a variety of dialog boxes. DialogX对话框组件库,更加方便易用,可自定义程度更高,扩展性更强,轻松实现各种对话框、菜单和提示效果,更有Material You、iOS、MIUI等主题扩展可选
Apache License 2.0
2.11k stars 222 forks source link

【BUG反馈】PopMenu 弹窗后点击任意选项,页面上的 searchView 自动聚焦 #299

Closed ruoling0115 closed 1 year ago

ruoling0115 commented 1 year ago

【BUG反馈】PopMenu 弹窗后点击任意选项,页面上的 searchView 自动聚焦

PopMenu.show(new String[]{ "删除", "取消"}) .setOnMenuItemClickListener(new OnMenuItemClickListener() { @Override public boolean onClick(PopMenu dialog, CharSequence text, int index) {

                                switch (index) {
                                    case 0:
                                        appDatabase.bookInfoDao().deleteBookInfo(bookInfo);
                                        Toast.makeText(activity, "删除成功!", Toast.LENGTH_SHORT).show();
                                        initData();
                                        break;
                                    case 1:
                                        break;
                                    default:
                                }

                                return false;
                            }
                        });

                return true;
ruoling0115 commented 1 year ago
    DialogX.init(this);
    DialogX.DEBUGMODE = true;
    DialogX.implIMPLMode = DialogX.IMPL_MODE.VIEW;
    DialogX.useHaptic = true;
    DialogX.globalStyle = new MaterialStyle();
    DialogX.globalTheme = DialogX.THEME.AUTO;
    DialogX.onlyOnePopTip = false;

// DialogX.IMPL_MODE view 模式下会出现这个问题、window不会

kongzue commented 1 year ago

此问题应该并非DialogX的问题,DialogX在弹出对话框后会默认获得焦点以便于接收backPress等事件,在关闭对话框后会释放焦点,但并没有去刻意的寻找某个组件使其获得焦点。 应该是你的界面内容中,该 searchView 处于焦点第一顺位系统自动切换到了它,这并非DialogX的bug。 你可以尝试在根布局设置:

android:focusable="true"
android:focusableInTouchMode="true"

看能否解决这个问题。