如何更改工具栏中的Humberger图标?
问题描述:
我正在使用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);
,当我搜索我也会知道,如果您将工具栏传递到抽屉构建器中,则无法更改图标,所以任何人都可以告诉我该怎么办?
答
我还没有与该库尝试过,但,请尝试以下操作:
ActionBar actionBar = getSupportActionBar();
if (actionBar != null) {
final Drawable upArrow = getResources().getDrawable(R.drawable.my_drawable);
actionBar.setHomeAsUpIndicator(upArrow);
actionBar.setDisplayHomeAsUpEnabled(true);
actionBar.setHomeButtonEnabled(true);
}
答
试试这个通过修改如下:
result.getActionBarDrawerToggle().setDrawerIndicatorEnabled(true);
到
result.getActionBarDrawerToggle().setDrawerIndicatorEnabled(false);
这禁用库默认图标,然后更改图标...
getSupportActionBar().setHomeAsUpIndicator(R.drawable.my_drawable);
答
根据此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);
希望这将帮助你,你可以动态更新的图标。
答
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);
}
}
再做您有任何奎雷斯到这里咨询我.....,希望你有解决问题的方法...
我试过,但没有奏效 –
好吧,顺便格式化你的问题,以避免downvotes。 – Shaishav