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

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

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

最佳答案

要在屏幕上立即显示单个 Fragment,是的,您可以交替使用 fragment 或 FrameLayout。

单个 fragment ,方法 1

通过 fragment 标签显示 fragment 在 XML 中看起来像这样:

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

单个 fragment ,方法 2

通过 FrameLayout 显示 Fragment 在 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();

多个 fragment

然后,方法 2 支持通过运行更多 Java 代码来更改之后显示的 fragment 来更改稍后显示的 fragment :

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

因此 FrameLayout 为您提供了通过使用 fragment 标记来执行此操作的额外能力。

关于android - 在 android 中使用 fragment 和 frameLayout 有什么区别?两者可以互换使用吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43474860/

相关文章:

java - Android:检测 ObservableList 中已删除的项目

android - 这是在 android 的本地内存中存储自定义数组列表的更好方法

android - 点击 "Not now"或 "Cancel"后In-App Review提示不可见

Android/9-patch PNG : What, 如果我需要像 11-patch PNG 这样的东西?

android - 抽屉 fragment 的第二个 Activity

android - 在当前 WebView 页面中打开 PDF

java - 按下后退按钮时如何将布局设置为先前的布局?

android - RecyclerView 会回收 NestedScrollView 中的项目吗?

android - 增加 Viewpager 中可见选项卡的数量

java - 使用 fragment - NullPointerException