android – 工具栏的徽标图标是否可点击?

我已经使用了工具栏所以现在我想在徽标图标上应用点击事件我怎么能得到这个事件?

这是我做过的一些编码

Toolbar toolbar = null;
toolbar = (Toolbar) findViewById(R.id.actionToolbar);
setSupportActionBar(toolbar);
setTitle(null);
toolbar.setNavigationIcon(R.drawable.back);
toolbar.setNavigationContentDescription("BACK");
toolbar.setlogo(R.drawable.ic_launcher);
toolbar.setlogoDescription("logo");

toolbar.setNavigationOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        Toast.makeText(MainActivity.this,"Nav",Toast.LENGTH_SHORT).show();
    }
});

在这里,我设置了导航图标和徽标图标,所以现在我想要logo图标的点击事件,怎么可能?

解决方法

你需要首先参考它
View logoView = getToolbarlogoView(toolbar);
logoView.setonClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        //logo clicked
    }
});

使用内容描述我们可以获得View参考.请参阅内联评论.

public static View getToolbarlogoIcon(Toolbar toolbar){
        //check if contentDescription prevIoUsly was set
        boolean hadContentDescription = android.text.TextUtils.isEmpty(toolbar.getlogoDescription());
        String contentDescription = String.valueOf(!hadContentDescription ? toolbar.getlogoDescription() : "logoContentDescription");
        toolbar.setlogoDescription(contentDescription);
        ArrayList<View> potentialViews = new ArrayList<View>();
        //find the view based on it's content description,set programatically or with android:contentDescription
        toolbar.findViewsWithText(potentialViews,contentDescription,View.FIND_VIEWS_WITH_CONTENT_DESCRIPTION);
        //Nav icon is always instantiated at this point because calling setlogoDescription ensures its existence 
        View logoIcon = null;
        if(potentialViews.size() > 0){
            logoIcon = potentialViews.get(0);
        }
        //Clear content description if not prevIoUsly present
        if(hadContentDescription)
            toolbar.setlogoDescription(null);
        return logoIcon;
    }

相关文章

Android性能优化——之控件的优化 前面讲了图像的优化,接下...
前言 上一篇已经讲了如何实现textView中粗字体效果,里面主要...
最近项目重构,涉及到了数据库和文件下载,发现GreenDao这个...
WebView加载页面的两种方式 一、加载网络页面 加载网络页面,...
给APP全局设置字体主要分为两个方面来介绍 一、给原生界面设...
前言 最近UI大牛出了一版新的效果图,按照IOS的效果做的,页...