我有一个活动DrawerLayout
。我可以通过两种不同的方式打开抽屉……从屏幕左侧区域向右滑动并单击应用程序标题。我没有显示应用程序图标,只有标题。我已经完全按照谷歌的建议实现了这个:创建导航抽屉:使用应用程序图标打开和关闭
就打开和关闭抽屉本身而言,一切都可以正常工作。但是,它不显示DrawerLayout
假定使用的标准图标。相反,我得到了常规的向上插入符号(看起来像一个小于号)。
一旦我将应用程序图标添加回ActionBar
它,它就会开始按预期工作。抽屉布局图标在抽屉打开或关闭时显示和动画。我已经尝试在我的样式 XML 文件中和以编程方式删除应用程序图标。
有没有办法让DrawerLayout
图标在没有应用程序图标的情况下工作???
更新:我找到了解决方法,但它比解决方案更重要。我只是创建了一个 1x1 像素的透明 PNG (blank.png) 并将其设置为我的 styles.xml 文件中的应用程序图标。以下是所有相关代码:
样式.xml
<style name="MyCustomTheme" parent="android:Theme.Holo.Light.DarkActionBar">
<item name="android:actionBarStyle">@style/MyCustomActionBar</item>
<item name="android:icon">@drawable/blank</item>
</style>
<style name="MyCustomActionBar" parent="@android:style/Widget.Holo.ActionBar">
<item name="android:displayOptions">showHome|showTitle|homeAsUp</item>
</style>
MainActivity -> onCreate()
this.navDrawerToggle = new ActionBarDrawerToggle
(
this,
this.navDrawerLayout,
R.drawable.icon_nav_drawer,
R.string.nav_drawer_open,
R.string.nav_drawer_closed
)
{
public void onDrawerClosed(View view) {}
public void onDrawerOpened(View drawerView) {}
};
MainActivity -> onPostCreate()
super.onPostCreate(savedInstanceState);
this.navDrawerToggle.syncState();
MainActivity -> onResume()
this.navDrawer.setOnItemClickListener(new DrawerItemClickListener());
this.navDrawerLayout.setDrawerListener(this.navDrawerToggle);
MainActivity -> onPause()
this.navDrawer.setOnItemClickListener(null);
this.navDrawerLayout.setDrawerListener(null);
MainActivity -> onConfigurationChanged(配置 newConfig)
super.onConfigurationChanged(newConfig);
navDrawerToggle.onConfigurationChanged(newConfig);
MainActivity -> onOptionsItemSelected(MenuItem item)
if (this.navDrawerToggle.onOptionsItemSelected(item)) {return true;}
else
{
// A bunch of item click handling happens here...
return true;
}