1

私の Android アプリケーションでは、設定、概要、フィードバックなどにオーバーフロー メニューを使用しています。

設定画面はPreferenceFragmentを拡張することで提供されます。

私の最小 SDK は 14 で、ターゲット SDK は 17 です。

ユーザーがオーバーフロー メニューから設定オプションをクリックして設定画面に移行すると、オーバーフロー アイコンが表示されたままになり、ユーザーは再度クリックして設定を選択できるため、「別の」設定画面にアクセスし続けることができます。

これが起こらないようにするための正しいアプローチは何ですか?

設定フラグメントが表示されているときにオーバーフロー メニューを無効にするにはどうすればよいですか?
ユーザーが設定フラグメントから戻ったときに有効にしますか?

4

1 に答える 1

1
  1. 設定フラグメントが表示されていないかどうかを確認する変数を 1 つ作成します (isPrefsHiddden)。
  2. この変更を onPrepareOptionsMenu に加えて、設定フラグメントが表示されている場合にオプション メニューを非表示にします (isPrefsHidden==false)。


    @Override
    public boolean onPrepareOptionsMenu (Menu menu) {
        //hide options menu if preference fragment is visible
        return isPrefsHidden;
    }

  1. 設定フラグメントが表示されなくなったら、変数を true に変更して、オプション メニューを再度アクティブにします。GUI が適切に更新されるように、変数を変更するたびに、invalidateOptionsMenu() を呼び出す必要があります。
于 2015-08-20T12:33:17.140 に答える