0

Android ICS で 3 つのドットのドロップダウン メニューを強制的に表示する方法を見つけようとしています。設定/メニュー用のハードボタンがない場合に表示されるはずです。

これが私が言及しているもののスクリーンショットです:

http://cdn.gottabemobile.com/wp-content/uploads/2011/12/ICS-Screen05.jpg

ありがとう!

4

2 に答える 2

1

android:showAsAction="never"メニューXMLで使用することにより、オーバーフローメニューにアイテムを強制的に表示できます。ただし、デバイスにハードウェアメニューキーがある場合、オーバーフローは表示されません。クリックしたアイテムを使って偽物を作成し、カスタムのコンテキストメニューなどをドロップダウンする必要があります。

私も自分のアプリでこれに遭遇しました。強制したいのと同じくらい、予想されるプラットフォームの動作に合わせてメニューボタンのままにしておくのがおそらく最善です。

于 2013-02-08T07:06:49.260 に答える
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-26T14:54:55.443 に答える