美文网首页
toolbar用setNavigationIcon()修改左侧图

toolbar用setNavigationIcon()修改左侧图

作者: 仁昌居士 | 来源:发表于2017-06-02 18:07 被阅读0次

    toolbar用setNavigationIcon()修改左侧图标为自己的图标无效的原因:
    并非setNavigationIcon()是无效的。是因为放置这段代码位置的问题。

    两种情况:
    1、关联了DrawerLayout的toolbar。这个时候,单纯的在setSupportActionBar(titleBar);之后调用setNavigationIcon()来改变NavigationIcon是无效的。该是在关联完DrawerLayout之后,再setNavigationIcon()。源码为啥。等我这段时间忙完了看心情会解析一下。

     titleBar.setTitle("");
    setSupportActionBar(titleBar);
    
    ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(this, drawerLayout, titleBar, R.string.navigation_drawer_open,R.string.navigation_drawer_close);
    drawerLayout.addDrawerListener(toggle);
    toggle.syncState();
    titleBar.setNavigationIcon(R.drawable.activity_openreside);
    

    2、不需关联DrawerLayout的toolbar。这个时候,只需在setSupportActionBar(titleBar);之后调用setNavigationIcon()来改变NavigationIcon即可。

     titleBar.setTitle("");
    setSupportActionBar(titleBar);
    titleBar.setNavigationIcon(R.drawable.activity_openreside);
    

    不需要关联时,toolbar怎么使用左侧NavigationIcon的点击事件呢?很简单setNavigationOnClickListener():

    titleBar.setNavigationOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    finish();
                }
            });
    

    注意最好别在xml里设置属性。这个由于toolbar的一些原因会导致设置无效。最好代码来实现。

    相关文章

      网友评论

          本文标题:toolbar用setNavigationIcon()修改左侧图

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