1

私のアプリには、fragmentTransaction で replace() を呼び出して追加するフラグメントが 1 つあります。

Fragment1 と呼ぶこのフラグメントには、onCreate() で onCreateOptionsMenu と setHasOptionsMenu(true) を呼び出すことによってアクション バーに追加されるいくつかのメニュー項目があります。このフラグメントから、FragmentTransaction で add() を呼び出すことによって追加される別のフラグメントを追加します。

この fragment2 にもオプション メニューがありますが、最初のフラグメントのオプションは削除されます。次に、API 19 で [戻る] ボタンをクリックすると、Fragment1 に戻り、このメニューのオプションが追加されます。これは、これらのフラグメントの両方をホストするアクティビティが onCreateOptionsMenu を呼び出してから onPrepare オプション メニューを呼び出すためです。Fragment1でも同じメソッドが呼び出されます。

API 16 でアプリを実行すると、前述のすべてのメソッドも呼び出されますが、Fragment1 のメニュー項目がまったく追加されないか、3 つのドット メニュー グループが間違った場所に追加されます。下位の API に何か違うものがあると思います。おそらくバグでさえあります。この問題を解決するにはどうすればよいですか? どなたか経験ある方いますか?

これは、最初のフラグメントの 2 番目のフラグメントから戻ったときにどのように見えるか、API 16 でどのように見えるかです。

これは間違った動作です

これは、2 番目のフラグメントから最初のフラグメントに戻った後の API 19 での動作方法と外観です。

ここに画像の説明を入力

この質問には関係ないと思うので、コードは添付しません。異なるプラットフォームでは動作が異なるだけで、どうすればよいかわかりません。助けてくれてありがとう。

4

0 に答える 0