Android 没有应用程序图标的导航抽屉
Android Navigation Drawer Without App Icon
我有一个导航抽屉,在通用 "this button opens up the slide menu" 按钮(即三个水平线的按钮)旁边,无论我将应用程序图标设置为什么,都会出现在它旁边。我不能简单地将图像替换为空白图像,因为这样当您尝试打开应用程序时就没有应用程序图标了。有没有办法在不影响应用程序图标的情况下将其从导航抽屉中删除?我查看了 drawer_layout 中的代码以进行设置。 . .我似乎找不到将此图标添加到标题栏的位置。
这是我创建菜单的代码:
private void setupDrawer(){
mTitle = mDrawerTitle = getTitle();
mForumTitles = getResources().getStringArray(R.array.main_menu_array);
mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
mDrawerList = (ListView) findViewById(R.id.left_drawer);
// set a custom shadow that overlays the main content when the drawer opens
mDrawerLayout.setDrawerShadow(R.drawable.drawer_shadow, GravityCompat.START);
// set up the drawer's list view with items and click listener
mDrawerList.setAdapter(new ArrayAdapter<String>(this,
R.layout.drawer_list_item, mForumTitles));
mDrawerList.setOnItemClickListener(new DrawerItemClickListener());
// enable ActionBar app icon to behave as action to toggle nav drawer
getActionBar().setDisplayHomeAsUpEnabled(true);
getActionBar().setHomeButtonEnabled(true);
// ActionBarDrawerToggle ties together the the proper interactions
// between the sliding drawer and the action bar app icon
mDrawerToggle = new ActionBarDrawerToggle(
this, /* host Activity */
mDrawerLayout, /* DrawerLayout object */
R.drawable.ic_drawer, /* nav drawer image to replace 'Up' caret */
R.string.drawer_open, /* "open drawer" description for accessibility */
R.string.drawer_close /* "close drawer" description for accessibility */
) {
public void onDrawerClosed(View view) {
getActionBar().setTitle("Menu");
invalidateOptionsMenu(); // creates call to onPrepareOptionsMenu()
}
public void onDrawerOpened(View drawerView) {
//getActionBar().setTitle(mDrawerTitle);
invalidateOptionsMenu(); // creates call to onPrepareOptionsMenu()
}
};
mDrawerLayout.setDrawerListener(mDrawerToggle);
}
有什么想法吗?我将 post 代码的任何其他部分或 xml 必要的文件。
您可以在样式定义中隐藏操作栏中的图标。查看 this answer 了解如何操作。
您应该做的是将徽标添加为您的主页作为向上指示器,而不是 3 个条:
<item name="displayOptions">showHome|showTitle|homeAsUp</item>
<item name="homeAsUpIndicator">R.drawable.icon</item>
你的样式,它的父级必须是 Theme.AppCompat
actionBarDrawerToggle.setDrawerIndicatorEnabled(false);
在我的例子中,导航按钮是不可见的,但仍然占据了这个位置,所以我设法通过上面的代码将它从工具栏中完全删除。以防万一,对于那些正在自定义工具栏和抽屉布局的人。
我有一个导航抽屉,在通用 "this button opens up the slide menu" 按钮(即三个水平线的按钮)旁边,无论我将应用程序图标设置为什么,都会出现在它旁边。我不能简单地将图像替换为空白图像,因为这样当您尝试打开应用程序时就没有应用程序图标了。有没有办法在不影响应用程序图标的情况下将其从导航抽屉中删除?我查看了 drawer_layout 中的代码以进行设置。 . .我似乎找不到将此图标添加到标题栏的位置。
这是我创建菜单的代码:
private void setupDrawer(){
mTitle = mDrawerTitle = getTitle();
mForumTitles = getResources().getStringArray(R.array.main_menu_array);
mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
mDrawerList = (ListView) findViewById(R.id.left_drawer);
// set a custom shadow that overlays the main content when the drawer opens
mDrawerLayout.setDrawerShadow(R.drawable.drawer_shadow, GravityCompat.START);
// set up the drawer's list view with items and click listener
mDrawerList.setAdapter(new ArrayAdapter<String>(this,
R.layout.drawer_list_item, mForumTitles));
mDrawerList.setOnItemClickListener(new DrawerItemClickListener());
// enable ActionBar app icon to behave as action to toggle nav drawer
getActionBar().setDisplayHomeAsUpEnabled(true);
getActionBar().setHomeButtonEnabled(true);
// ActionBarDrawerToggle ties together the the proper interactions
// between the sliding drawer and the action bar app icon
mDrawerToggle = new ActionBarDrawerToggle(
this, /* host Activity */
mDrawerLayout, /* DrawerLayout object */
R.drawable.ic_drawer, /* nav drawer image to replace 'Up' caret */
R.string.drawer_open, /* "open drawer" description for accessibility */
R.string.drawer_close /* "close drawer" description for accessibility */
) {
public void onDrawerClosed(View view) {
getActionBar().setTitle("Menu");
invalidateOptionsMenu(); // creates call to onPrepareOptionsMenu()
}
public void onDrawerOpened(View drawerView) {
//getActionBar().setTitle(mDrawerTitle);
invalidateOptionsMenu(); // creates call to onPrepareOptionsMenu()
}
};
mDrawerLayout.setDrawerListener(mDrawerToggle);
}
有什么想法吗?我将 post 代码的任何其他部分或 xml 必要的文件。
您可以在样式定义中隐藏操作栏中的图标。查看 this answer 了解如何操作。
您应该做的是将徽标添加为您的主页作为向上指示器,而不是 3 个条:
<item name="displayOptions">showHome|showTitle|homeAsUp</item>
<item name="homeAsUpIndicator">R.drawable.icon</item>
你的样式,它的父级必须是 Theme.AppCompat
actionBarDrawerToggle.setDrawerIndicatorEnabled(false);
在我的例子中,导航按钮是不可见的,但仍然占据了这个位置,所以我设法通过上面的代码将它从工具栏中完全删除。以防万一,对于那些正在自定义工具栏和抽屉布局的人。