私のアプリで、ハードウェアメニューボタンのない新しいデバイスのメニューを追加すると、アクションバーに3つのドットが追加されることに気付きました。ただし、一部のアプリでは、これらの3つのドットを実際に下に移動できることがわかります(ソフトウェアナビゲーション上)。これをどのように実現できますか?それが違いを生むなら、私もactionbarsherlockを使用しています。
質問する
5122 次
2 に答える
7
14 未満に設定することで、これを「達成」できますtargetSdk
。「達成」と言うのは、これは悪い習慣だからです。ソフトウェア キーを備えたデバイスの場合、ActionBar でテーマを使用している限り、ActionBar にメニューが表示されます。ActionBar のない (Holo 以外の) テーマを使用している場合は、3 つのドットが表示されます。
3つの点は嫌いです。
3つの点は悪です。
3 つのドットが必要です。なれ。根絶した。
要するに、私はそれを避けるでしょう。:)
参照:恥のメニューボタン
于 2012-10-26T19:20:51.763 に答える
1
それで、それは非常に単純であることがわかりました。私は最近自分のアプリに実装しました。
オーバーフロー メニューに表示する必要がある項目は、次のように 1 つのメニュー項目の下にネストします。
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:id="@+id/empty"
android:orderInCategory="101"
android:showAsAction="always"
android:icon="@drawable/ic_action_overflow">
<menu>
<item
android:id="@+id/action_settings"
android:orderInCategory="96"
android:showAsAction="never"
android:title="@string/menu_settings"
android:icon="@drawable/ic_action_settings"/>
<item
android:id="@+id/action_share"
android:orderInCategory="97"
android:showAsAction="never"
android:title="@string/menu_share"
android:icon="@drawable/ic_action_share"/>
<item
android:id="@+id/action_rate"
android:orderInCategory="98"
android:showAsAction="never"
android:title="@string/menu_rate"
android:icon="@drawable/ic_action_important"/>
<item
android:id="@+id/action_feedback"
android:orderInCategory="99"
android:showAsAction="never"
android:title="@string/menu_feedback"
android:icon="@drawable/ic_action_edit"/>
</menu>
</item>
</menu>
次に、メイン アクティビティ ファイルを次のように編集します。
package com.example.test;
//all your import statements go here
Menu mainMenu=null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); }
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
mainMenu=menu;
return true; }
//Menu press should open 3 dot menu
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode==KeyEvent.KEYCODE_MENU) {
mainMenu.performIdentifierAction(R.id.empty, 0);
return true; }
return super.onKeyDown(keyCode, event); }
于 2013-11-26T15:09:51.730 に答える