2016-07-30 76 views
1

我正在使用mikepenz抽屉库但我想用我自己的可绘制图标更改默认humburger图标和后退箭头图标。如何更改工具栏中的Humberger图标?

我已经尝试了很多次,但是我无法用我自己的图标更改图标。

任何人都可以帮助我吗?

new DrawerBuilder() 
    .withActivity(this) 
    .withTranslucentStatusBar(false) 
    .withActionBarDrawerToggle(false) 
    .withToolbar(toolbar) 
    .addDrawerItems(
     //pass your items here 
    ) 
    .build(); 

码查看HUMBURGER ICON:

getSupportActionBar().setDisplayHomeAsUpEnabled(false); 
result.getActionBarDrawerToggle().setDrawerIndicatorEnabled(true); 

以下是我发现很多次的代码,但我想这也是,但没有奏效

Drawable upArrow = getResources().getDrawable(R.drawable.my_drawable); 

     actionBar.setHomeAsUpIndicator(upArrow); 
     actionBar.setDisplayHomeAsUpEnabled(true); 
     actionBar.setHomeButtonEnabled(true); 

,当我搜索我也会知道,如果您将工具栏传递到抽屉构建器中,则无法更改图标,所以任何人都可以告诉我该怎么办?

回答

1

我还没有与该库尝试过,但,请尝试以下操作:

ActionBar actionBar = getSupportActionBar(); 
     if (actionBar != null) { 
      final Drawable upArrow = getResources().getDrawable(R.drawable.my_drawable); 

      actionBar.setHomeAsUpIndicator(upArrow); 
      actionBar.setDisplayHomeAsUpEnabled(true); 
      actionBar.setHomeButtonEnabled(true); 
     } 
+0

我试过,但没有奏效 –

+0

好吧,顺便格式化你的问题,以避免downvotes。 – Shaishav

0

试试这个通过修改如下:

result.getActionBarDrawerToggle().setDrawerIndicatorEnabled(true); 

result.getActionBarDrawerToggle().setDrawerIndicatorEnabled(false); 

这禁用库默认图标,然后更改图标...

getSupportActionBar().setHomeAsUpIndicator(R.drawable.my_drawable); 
1

根据此link,您需要从DrawerBuilder中删除withToolbar(),然后您必须完全自行处理打开/关闭。

对于您可以做一些事情一样,

protected void onCreate(Bundle savedInstanceState) { 
     ... 
     getSupportActionBar().setDisplayHomeAsUpEnabled(true); 
     getSupportActionBar().setDefaultDisplayHomeAsUpEnabled(false); 
     toggle.setDrawerIndicatorEnabled(false); 
     toggle.setHomeAsUpIndicator(R.drawable.ic_custom_drawer_icon); 
     ... 
    } 

你也不得不添加工具栏导航点击监听,监听上的自定义抽屉图标点击事件。

protected void onCreate(Bundle savedInstanceState) { 
     ... 
     toggle.setToolbarNavigationClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View view) { 
       DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout); 
       if (drawer.isDrawerOpen(GravityCompat.START)) { 
        drawer.closeDrawer(GravityCompat.START); 
       } else { 
        drawer.openDrawer(GravityCompat.START); 
       } 
      } 
     }); 
     ... 
    } 

在需要时为

toggle.setHomeAsUpIndicator(R.drawable.ic_new_icon); 

希望这将帮助你,你可以动态更新的图标。

0

private DrawerLayout drawerLayout; 
 
private ActionBarDrawerToggle actionBarDrawerToggle; 
 
Toolbar toolbar; 
 
String Drawer_Open,Drawer_Close; 
 

 
@Override 
 

 
protected void onCreate(Bundle savedInstanceState){ 
 
super.onCreate(savedInstanceState); 
 
setContentView(R.layout.activity_main); 
 
toolbar=(Toolbar)findViewById(R.id.toolbar); 
 
setSupportActionBar(toolbar); 
 
//set it button icon 
 
getSuppotActionBar().setDisplayHomeAsUpEnabled(true); 
 
//set it makes button Clickble 
 
getSuppotActionBar().setHomeButtonEnabled(true); 
 
//set your own icon by using this code 
 
getSuppotActionBar().setHomeAsUpIndicator(R.drawable.my_icon); 
 
drawerLayout=(DrawerLayout)findViewById(R.id.drawer_layout); 
 
actionBarDrawerToggle=new ActionBarDrawerToggle(this,drawerLayout,toolbar,Drawer_Open,Drawer_Close); 
 
drawerLayout.serDrawerListener(actionBarDrawerToggle); 
 
} 
 

 
}

再做您有任何奎雷斯到这里咨询我.....,希望你有解决问题的方法...

相关问题