8

短いバージョン: フラグメントがフォーカスを失うのを防ぐにはどうすればよいですか?

長いバージョン: フラグメント トランザクションを使用して、既存のアクティビティの上に 3 つのフラグメントをオーバーレイしています。

フラグメントのオーバーレイ

ここでは、それがどのように見えるかを見ることができます。フラグメント C は、アクティビティの一部として表示される元のフラグメントです。特定のイベントの後、新しいフラグメントを追加するトランザクションをコミットします。

ContainerFragment containerFragment = new ContainerFragment();
FragmentA aFragment = new FragmentA();
FragmentB bFragment = new FragmentB();
bFragment.setListener(listener);

FragmentTransaction transaction = manager.beginTransaction();
transaction.add(R.id.c_fragment, containerFragment, TAG_CONTAINER);

// added within the layout used by containerFragment

transaction.add(R.id.a_fragment, aFragment, TAG_A);
transaction.add(R.id.b_fragment, bFragment, TAG_B);

transaction.addToBackStack(TRANSACTION_NAME);
transaction.commit();

注: 元のアクティビティを一時停止したくないため、別のアクティビティを使用してフラグメント A と B を起動しません。

とにかく、これはうまくいきます。この問題は、Dpad を使用していて、下ボタンをクリックすると、フォーカスが Fragment A を離れ、Fragment C で何かを選択できることに起因します (Fragment B はフォーカス可能ではありません)。フォーカスがフラグメント A から離れないようにするにはどうすればよいですか?

ありがとう :)

4

0 に答える 0