との活動がありDrawerLayout
ます。ドロワーを開くには 2 つの方法があります... 画面の左側の領域から右側にスワイプする方法と、アプリのタイトルをクリックする方法です。アプリのアイコンは表示されず、タイトルのみが表示されます。ここで Google が推奨するとおりにこれを実装しました:ナビゲーション ドロワーの作成: アプリ アイコンで開いて閉じる
引き出し自体の開閉まで全て機能的です。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(メニュー項目)
if (this.navDrawerToggle.onOptionsItemSelected(item)) {return true;}
else
{
// A bunch of item click handling happens here...
return true;
}