美文网首页Android知识Android开发
Toolbar菜单按钮无法点击的解决方法

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

作者: zzEND | 来源:发表于2017-05-09 19:52 被阅读1282次

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

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

    相关文章

      网友评论

        本文标题:Toolbar菜单按钮无法点击的解决方法

        本文链接:https://www.haomeiwen.com/subject/uayitxtx.html