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

今天遇到一个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;
    }

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值