web-dev-qa-db-ja.com

AndroidでフラグメントとframeLayoutを使用することの違いは何ですか?両方を交換して使用できますか?

フラグメントの場合にframeLayoutを使用するアプローチを見てきました。最終的な目標は、複数のフラグメントを持つことでした。

13
Nandit Mehra

単一のフラグメントを画面にすぐに表示するには、はい、フラグメントまたはFrameLayoutを同じ意味で使用できます。

単一フラグメント、方法1

フラグメントタグを介してフラグメントを表示すると、XMLでは次のようになります。

<fragment class="com.example.ExampleFragment"
        Android:id="@+id/details" Android:layout_weight="1"
        Android:layout_width="0px" Android:layout_height="match_parent" />

単一フラグメント、方法2

FrameLayoutを介してフラグメントを表示すると、XMLでは次のようになります。

<FrameLayout Android:id="@+id/details" Android:layout_weight="1"
            Android:layout_width="0px" Android:layout_height="match_parent" />

続いてJava次のようなコード:

Fragment newFragment = new ExampleFragment();
FragmentTransaction transaction = getFragmentManager().beginTransaction();
transaction.replace(R.id.details, newFragment);
transaction.addToBackStack(null);
transaction.commit();

複数のフラグメント

次に、方法2は、さらにJavaコードを実行して、後で存在するフラグメントを変更することにより、後で表示するフラグメントの変更をサポートします。

Fragment secondFragment = new SecondExampleFragment();
FragmentTransaction transaction = getFragmentManager().beginTransaction();
transaction.replace(R.id.details, secondFragment);
transaction.addToBackStack(null);
transaction.commit();

したがって、FrameLayoutは、フラグメントタグを使用するよりもそれを行うための追加の機能を提供します。

16
Lance Nanek