为什么将新片段添加到片段管理器而不是替换它时会发生 UI 变化?
Why UI changes happen when adding a new fragment to Fragment manager instead of replacing it?
我在 activity.
中使用 CollapsingToolbarLayout
和 Fragments
我正在使用以下代码向我的 activity:
添加一个新片段
FragmentDetails fragmentDetails = FragmentDetails.newInstance();
new DetailPresenter(fragmentDetails, appRepository, requestedPostId);
fm.beginTransaction()
.replace(R.id.fragment_container, fragmentDetails, String.valueOf(requestedPostId))
.addToBackStack(String.valueOf(requestedPostId))
.commit();
一切正常,但我想在我的 FragmentManager
中使用 add
而不是 replace
,如下所示:
FragmentDetails fragmentDetails = FragmentDetails.newInstance();
new DetailPresenter(fragmentDetails, appRepository, requestedPostId);
fm.beginTransaction()
.add(R.id.fragment_container, fragmentDetails, String.valueOf(requestedPostId))
.addToBackStack(String.valueOf(requestedPostId))
.commit();
但是当我使用 add
而不是 replace
时,我的 CollapsingToolbarLayout
会跳出屏幕 5dp
,我的片段视图将是这样的:
为什么会这样?我搜索了很多,但一无所获。
更新:
我在不同的设备上检查过这个。
这发生在 API 23 及以上!
例如在 Android 4.4.2 的设备中,一切正常。
谢谢。
好久没解决这个问题了!
这件事发生在我身上是因为 CoordinatorLayout
。我不明白为什么,但问题出在我的工具栏布局从 Appbar
布局顶部留出空白。
我把我所有的代码都放在一个 Linearlayout
中,它解决了我的问题!
我在 activity.
中使用CollapsingToolbarLayout
和 Fragments
我正在使用以下代码向我的 activity:
添加一个新片段 FragmentDetails fragmentDetails = FragmentDetails.newInstance();
new DetailPresenter(fragmentDetails, appRepository, requestedPostId);
fm.beginTransaction()
.replace(R.id.fragment_container, fragmentDetails, String.valueOf(requestedPostId))
.addToBackStack(String.valueOf(requestedPostId))
.commit();
一切正常,但我想在我的 FragmentManager
中使用 add
而不是 replace
,如下所示:
FragmentDetails fragmentDetails = FragmentDetails.newInstance();
new DetailPresenter(fragmentDetails, appRepository, requestedPostId);
fm.beginTransaction()
.add(R.id.fragment_container, fragmentDetails, String.valueOf(requestedPostId))
.addToBackStack(String.valueOf(requestedPostId))
.commit();
但是当我使用 add
而不是 replace
时,我的 CollapsingToolbarLayout
会跳出屏幕 5dp
,我的片段视图将是这样的:
为什么会这样?我搜索了很多,但一无所获。
更新: 我在不同的设备上检查过这个。 这发生在 API 23 及以上! 例如在 Android 4.4.2 的设备中,一切正常。
谢谢。
好久没解决这个问题了!
这件事发生在我身上是因为 CoordinatorLayout
。我不明白为什么,但问题出在我的工具栏布局从 Appbar
布局顶部留出空白。
我把我所有的代码都放在一个 Linearlayout
中,它解决了我的问题!