Toolbar菜单按钮无法点击的解决方法

来源:互联网 发布:nginx邮件代理 编辑:程序博客网 时间:2024/05/21 17:05

今天遇到一个bug,我给toolbar加了一个menu,但是点击没有任何反应,换句话说这个按钮无法被点击。

menu文件 menu_toolbar_announcement_comment:

<?xml version="1.0" encoding="utf-8"?><menu xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:app="http://schemas.android.com/apk/res-auto">    <item        android:id="@+id/menu_comment"        android:title="@string/comment"        android:visible="true"        app:actionLayout="@layout/menu_provider_number_subscript"        app:showAsAction="always" /></menu>

代码:

mToolbar.setOnMenuItemClickListener(new Toolbar.OnMenuItemClickListener() {            @Override            public boolean onMenuItemClick(MenuItem item) {                switch (item.getItemId()) {                    case R.id.menu_comment:                        //打开评论                        showComment();                        break;                }                return true;            }        }); @Override    public boolean onCreateOptionsMenu(Menu menu) {        getMenuInflater().inflate(R.menu.menu_toolbar_announcement_comment, menu);        return true;    }

代码中setOnMenuItemClickListener方法没有起到任何的作用。

我觉得原因可能是,我在menu中使用了自定义布局
app:actionLayout="@layout/menu_provider_number_subscript"

此时需要把menu的点击事件写在onCreateOptionsMenu中

具体如下:

@Override    public boolean onCreateOptionsMenu(Menu menu) {        getMenuInflater().inflate(R.menu.menu_toolbar_announcement_comment, menu);        MenuItem item = menu.findItem(R.id.menu_comment);        item.getActionView().setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                //打开评论                showComment();            }        });        return true;    }

原理我还没有搞懂,等我弄明白了回来填坑。

阅读全文
1 0
原创粉丝点击