【发布时间】:2020-04-07 20:53:50
【问题描述】:
我将简要介绍一下我的应用布局。有一个Activity,里面是一个FrameLayout,里面有一个RelativeLayout(这个RelativeLayout里面还有一些其他的小部件),它的尺寸设置为'Match Parent'。在 MainActivity 中,我进行了片段事务,将 FrameLayout 替换为片段。
Activity 和 Fragment 之间的共同点是它们的顶部都有一个 Tab Menu。现在,当 Fragment 替换 FrameLayout 时,Fragment 的 Tab Menu 应该会替换 Activity 的 Tab Menu(FrameLayout 设置为 Match Parent 尺寸)。 但是,这不会发生。
只有 Fragment 中的 RecyclerView 显示在 Activity 的 RecyclerView 上方(我在 Activity 和 Fragment 中各有一个 RecyclerView)。 Tab Menu 与 Activity 保持一致。
这非常令人困惑。 我错过了什么吗?
【问题讨论】:
-
FragmentTransactions 只处理属于Fragments 的Views。它们不会删除或替换您布局中可能包含的任何其他Views。如果您想要替换Activity的原始内容,正确的做法是将该内容移动到您在启动时加载的自己的Fragment中。容器<FrameLayout>应该是空的。 -
@Mike 将 Activity 代码迁移到 Fragment 需要注意哪些事项?
-
@MikeM。你能分享一个例子吗?
标签: android android-layout android-fragments android-framelayout