在android中使用片段和frameLayout有什么区别?两者都可以互换使用吗?

时间:2017-04-18 14:22:57

标签: android android-layout android-fragments android-framelayout

我见过一种方法,在片段的情况下使用frameLayout。最终目标是拥有多个碎片。

2 个答案:

答案 0 :(得分:12)

为了在屏幕上立即显示单个片段,是的,您可以互换使用片段或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为您提供了使用片段标记的额外功能。

答案 1 :(得分:-1)

一个framelayout,Relative View和其他几个代表android中的一个视图,并从viewgroup扩展。

Fragment是一个Object,用于表示用户界面的一部分,通常托管在一个活动中。

片段有一个视图组,您可以为其分配XML布局。在XML中,如果要表示片段中视图组的布局,可以指定一个可以作为framelayout的视图组。

片段和framelayouts不能互换使用。

话虽如此,您可以在不使用片段的情况下创建Android应用程序,只需使用视图组。