2012-05-11 6 views
1

ActionBarCompatを実装して、異なるOSバージョン間でActionBarを作成しました。
スマートフォンには表示されず、タブレットにのみ表示されます。Android - ActionBarCompatでサブメニューを表示する方法

私はこのスクリーンショットでいることがわかり

http://developer.android.com/resources/samples/ActionBarCompat/index.html共有オプションメニューは、サブメニューでログアウトオプションを表示しますが、私はコンパイルされ、タブレット上のサンプルコードを実行すると、ログアウトオプションが完全に隠されていました - タブレット上

<item   
    android:icon="@android:drawable/ic_menu_delete" 
    android:orderInCategory="1" 
    android:showAsAction="always" 
    android:title="@string/menu_logout"> 
    <menu> 
     <item 
      android:id="@+id/menu_logout"         
      android:title="@string/menu_logout"/> 
    </menu> 
</item> 

そして、それは本当に私がしたいどのようになりますと、サブメニュー

としてそれを表示するには、いずれかのオプションは、その後、私はこのような何かをしようとしたありませんでしたしかし、スマートフォンでは、望ましくない効果があります。ログアウトオプションメニューをクリックすると、他のコンテキストメニューが表示されます。これは、ネストされたメニューのためです。

あなたは知っていますか、タブレットでアクションバーを使用するときにサブメニューを表示し、スマートフォンに通常のオプションメニューを表示するにはどうすればよいですか? ActionBarCompatに何らかの追加設定が必要なのでしょうか?

+0

私はあなたの質問に答えていませんが、私はあなたがhttp://actionbarsherlock.com/を試みるべきだと思います。 ActionBarCombatよりもずっと面白いとは限りません。 –

答えて

1

解決策が見つかりました。 解決策は、タブレットとスマートフォンの2つのメニューリソースファイル、menu_tablet.xml、menu_smartphoneを持つことです。タブレット用

、私はサブメニューを表示:私は、通常のオプションメニューとして表示するスマートフォン向け

<item   
    android:icon="@android:drawable/ic_menu_delete" 
    android:orderInCategory="1" 
    android:showAsAction="always" 
    android:title="@string/menu_logout"> 
    <menu> 
     <item 
      android:id="@+id/menu_logout"         
      android:title="@string/menu_logout"/> 
    </menu> 
</item> 

<item   
     android:icon="@android:drawable/ic_menu_delete" 
     android:orderInCategory="1" 
     android:showAsAction="always" 
     android:id="@+id/menu_logout"         
     android:title="@string/menu_logout" /> 

し、コードで私はこのような適切なメニューリソースを膨らませます。

if(isTablet()){ 
    menuInflater.inflate(R.menu.menu_tablet, menu); 
}else{ 
    menuInflater.inflate(R.menu.menu_smartphone, menu); 
} 
関連する問題