更改图标导航抽屉 [英] Change Icon Of Navigation Drawer
本文介绍了更改图标导航抽屉的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有改变我的抽屉式导航栏图标,一个自定义的麻烦。目前我已经不得不实施其顶部有3条水平线的标准抽屉里的图标,但现在我要与我的自定义抽屉图标代替。
这是我的 mDrawerToggle
是目前:
mDrawerToggle =新ActionBarDrawerToggle(这一点,
mDrawerLayout,
R.drawable.app_icon,
R.string.drawer_open){
//我的code
};
解决方案
下面是摘自样本code 创建导航抽屉
Activity.class
公共类MainActivity延伸活动{
私人DrawerLayout mDrawerLayout;
私人ActionBarDrawerToggle mDrawerToggle;
...
公共无效的onCreate(包savedInstanceState){
...
mDrawerLayout =(DrawerLayout)findViewById(R.id.drawer_layout);
mDrawerToggle =新ActionBarDrawerToggle(
此时,/ *主机活动* /
mDrawerLayout,/ * DrawerLayout对象* /
R.drawable.ic_drawer,/ *导航抽屉图标来取代上插入符* /
R.string.drawer_open,/ *开放抽屉的描述* /
R.string.drawer_close / *关闭抽屉里的描述* /
){
/ **调用时抽屉处于完全封闭的状态下稳定运行。 * /
公共无效onDrawerClosed(查看视图){
super.onDrawerClosed(视图);
。getActionBar()的setTitle(mTitle);
}
/ **调用时的抽屉里一个完全开放的状态下稳定运行。 * /
公共无效onDrawerOpened(查看drawerView){
super.onDrawerOpened(drawerView);
。getActionBar()的setTitle(mDrawerTitle);
}
};
//设置抽屉切换为DrawerListener
mDrawerLayout.setDrawerListener(mDrawerToggle);
getActionBar()setDisplayHomeAsUpEnabled(真)。
getActionBar()setHomeButtonEnabled(真)。
}
@覆盖
保护无效onPostCreate(包savedInstanceState){
super.onPostCreate(savedInstanceState);
//同步发生onRestoreInstanceState后切换状态。
mDrawerToggle.syncState();
}
@覆盖
公共无效onConfigurationChanged(配置NEWCONFIG){
super.onConfigurationChanged(NEWCONFIG);
mDrawerToggle.onConfigurationChanged(NEWCONFIG);
}
@覆盖
公共布尔onOptionsItemSelected(菜单项项){
//通过事件ActionBarDrawerToggle,如果它返回
//真,那么它处理的应用程序图标触摸事件
如果(mDrawerToggle.onOptionsItemSelected(项目)){
返回true;
}
//处理您的其他动作条上的项目...
返回super.onOptionsItemSelected(项目);
}
...
}
I am having trouble with changing my navigation drawer icon to a custom one. I've currently had to implement the standard drawer icon which has 3 horizontal lines on top, but now I want to replace this with my custom drawer icon.
This is how my mDrawerToggle
is at the moment:
mDrawerToggle=new ActionBarDrawerToggle(this,
mDrawerLayout,
R.drawable.app_icon,
R.string.drawer_open) {
// My code
};
解决方案
Here is the sample code taken from Creating a Navigation Drawer
Activity.class
public class MainActivity extends Activity {
private DrawerLayout mDrawerLayout;
private ActionBarDrawerToggle mDrawerToggle;
...
public void onCreate(Bundle savedInstanceState) {
...
mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
mDrawerToggle = new ActionBarDrawerToggle(
this, /* host Activity */
mDrawerLayout, /* DrawerLayout object */
R.drawable.ic_drawer, /* nav drawer icon to replace 'Up' caret */
R.string.drawer_open, /* "open drawer" description */
R.string.drawer_close /* "close drawer" description */
) {
/** Called when a drawer has settled in a completely closed state. */
public void onDrawerClosed(View view) {
super.onDrawerClosed(view);
getActionBar().setTitle(mTitle);
}
/** Called when a drawer has settled in a completely open state. */
public void onDrawerOpened(View drawerView) {
super.onDrawerOpened(drawerView);
getActionBar().setTitle(mDrawerTitle);
}
};
// Set the drawer toggle as the DrawerListener
mDrawerLayout.setDrawerListener(mDrawerToggle);
getActionBar().setDisplayHomeAsUpEnabled(true);
getActionBar().setHomeButtonEnabled(true);
}
@Override
protected void onPostCreate(Bundle savedInstanceState) {
super.onPostCreate(savedInstanceState);
// Sync the toggle state after onRestoreInstanceState has occurred.
mDrawerToggle.syncState();
}
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
mDrawerToggle.onConfigurationChanged(newConfig);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Pass the event to ActionBarDrawerToggle, if it returns
// true, then it has handled the app icon touch event
if (mDrawerToggle.onOptionsItemSelected(item)) {
return true;
}
// Handle your other action bar items...
return super.onOptionsItemSelected(item);
}
...
}
这篇关于更改图标导航抽屉的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文