Android Material3 SearchBar菜单项点击事件无法触发求助
解决Material3 SearchBar菜单项点击无响应的问题
问题根源:通过app:menu给SearchBar绑定的菜单,不属于Activity的选项菜单体系,因此Activity的onCreateOptionsMenu和onOptionsItemSelected方法无法捕获它的点击事件,需要直接为SearchBar的菜单设置专属监听。
实现步骤
- 在Activity中获取SearchBar实例
- 调用
setOnMenuItemClickListener为其菜单绑定点击逻辑
示例代码:
// 在Activity的onCreate方法中执行 SearchBar searchBar = findViewById(R.id.search_bar); searchBar.setOnMenuItemClickListener(item -> { int itemId = item.getItemId(); if (itemId == R.id.user_account) { Toast.makeText(this, "success", Toast.LENGTH_SHORT).show(); return true; } return false; });
补充说明
如果需要动态修改菜单内容(比如添加/移除菜单项、修改状态),直接操作SearchBar的getMenu()对象即可,无需依赖Activity的选项菜单生命周期方法。
内容的提问来源于stack exchange,提问作者sanoj lawrence
相关产品推荐
相关产品推荐

