在Android中使用fragment和frameLayout有什么区别?两者可以互换使用吗?
答
framelayout,Relative View和其他一些代表了Android中的视图,并从视图组扩展。
片段是一个对象,用于表示用户界面的一部分,通常托管在一个活动中。
片段有一个viewgroup,您可以分配一个XML布局。在XML中,如果您希望在片段中表示视图组的布局,您可以指定一个视图组,该视图组可以是一个框架布局。
碎片和框架布局不能互换使用。
话虽如此,你可以创建一个Android应用程序,而不使用片段,并使用视图组。
答
为了在屏幕上立即显示单个片段,可以,可以交替使用片段或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" />
跟着Ja VA这样的代码:
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为您提供了使用片段标签的额外功能。
嗯,这解决了我的疑问。今天,我在XML文件中使用了,然后在java文件中使用了fragmentManager部分。在UI中有重复,现在我明白了为什么。 –