我一直致力于升级Android API 21的应用程序,并且已经开始使用支持库v7。但是,由于这些更改,导航抽屉指示器(汉堡菜单按钮)不再显示。
以前是在ActionBarDrawerToggle()方法中设置了指示符图标,但在支持lib v7中不再是这种情况。
另一个版本的ActionBarDrawerToggle()采用ToolBar对象。除了操作栏之外,我还必须有一个工具栏才能带回抽屉指示器吗?
还有什么可以做到的?
这是我的操作栏代码。
getSupportActionBar().setDisplayHomeAsUpEnabled(false);
getSupportActionBar().setHomeButtonEnabled(true);
getSupportActionBar().setDisplayShowHomeEnabled(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) {
getSupportActionBar().setTitle(mTitle);
invalidateOptionsMenu(); // creates call to onPrepareOptionsMenu()
}
public void onDrawerOpened(View drawerView) {
getSupportActionBar().setTitle(mDrawerTitle);
invalidateOptionsMenu(); // creates call to onPrepareOptionsMenu()
}
};
mDrawerToggle.setDrawerIndicatorEnabled(true);
mDrawerLayout.setDrawerListener(mDrawerToggle);
答案 0 :(得分:0)
这里只是一个黑暗的镜头,但它可能是一个与主题相关的问题。
您的应用主题是否包含以下内容?
<style name="YourAppStyleName" parent="Theme.AppCompat.Light.DarkActionBar">
<!-- Other items ommited -->
<item name="drawerArrowStyle">@style/YourAppStyleName.DrawerArrowToggle</item>
</style>
<style name="YourAppStyleName.DrawerArrowToggle" parent="Widget.AppCompat.DrawerArrowToggle">
<item name="spinBars">true</item>
<item name="color">@android:color/white</item>
</style>
这也提供了一个好看的动画箭头。
答案 1 :(得分:-1)
是的,您必须使用工具栏
mToolbar = (Toolbar) findViewById(R.id.toolbar_actionbar);
setSupportActionBar(mToolbar); getSupportActionBar().setDisplayShowHomeEnabled(true);
mNavigationDrawerFragment = (NavigationDrawerFragment) getFragmentManager().findFragmentById(R.id.fragment_drawer);
mNavigationDrawerFragment.setup(R.id.fragment_drawer, (DrawerLayout) findViewById(R.id.drawer), mToolbar);