1

ICS でのオーバーフロー メニューの使用を制御したい。このリンクを参照して、 onCreateView() でこのコードも試しました

     try {
            ViewConfiguration config = ViewConfiguration.get(this);
            Field menuKeyField = ViewConfiguration.class.getDeclaredField("sHasPermanentMenuKey");
            if(menuKeyField != null) {
                menuKeyField.setAccessible(true);
                menuKeyField.setBoolean(config, false);
            }
        } catch (Exception ex) {
            // Ignore
        }

私が間違っている場所とそれをどのように使用できるかを親切に助けてください。

4

1 に答える 1

4

私が間違っているところ

アプリにこのコードを含めるのは間違っています。

どのように使用できますか

使用しないでください。オーバーフロー メニューが正常に動作するようにしてください。

まず、コードはすべてのデバイスと Android バージョンで機能するとは限りません。

さらに重要なことは、あなたがしていることは、あなたが彼らよりも重要であると考えていることをユーザーに伝えていることです.

各デバイスには、OS のバージョンとハードウェアに基づいて、メニューをトリガーする手段があります。...アクション バーのアフォーダンスまたはデバイスの MENU ボタンです。ユーザーは、デバイス上のアプリ間の一貫性を望んでいます。デバイスに MENU ボタンがあるユーザーは、すべてのアプリでMENU ボタンを使用して、利用可能なメニューを表示することを期待します。メニューボタンを壊すことで、それらのユーザーに危害を加えようとしています。これをしないでください。MENU ボタンを押すとオーバーフロー メニューが表示されるように、ユーザーのデバイス上の他のアプリと同じようにアプリが動作するようにしてください。


アップデート

Android 4.4 の時点で、デバイスに MENU ボタンがあるかどうかに関係なく、オーバーフロー ... アフォーダンスがアクション バーに表示されます。Google は、デバイス メーカーに MENU ボタンを含めるのをやめるよう、もう少し圧力をかけています。私はこれについてもう少しブログを書いています

于 2012-10-13T11:11:20.510 に答える