【发布时间】:2015-11-27 08:21:27
【问题描述】:
我在替换 FrameLayout 容器中的片段时遇到了错误。
当应用程序第一次启动时一切正常,但是当我隐藏应用程序然后恢复时,当调用FragmentTransaction.replace 方法时片段开始相互重叠
我已经看过几乎所有关于此类问题的 stackoverflow 问题,但我无法解决此问题
代码:
<FrameLayout
android:id="@+id/frame"
android:layout_width="match_parent"
android:layout_height="match_parent">
</FrameLayout>
添加初始片段:
getSupportFragmentManager().beginTransaction()
.add(R.id.frame, RequestFragment.newInstance(), REQUEST_FRAGMENT_TAG)
.commit();
替换:
FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN);
switch (menuItem.getItemId()) {
case R.id.request:
ft.replace(R.id.frame, RequestFragment.newInstance(), REQUEST_FRAGMENT_TAG);
ft.commit();
return true;
case R.id.finished:
ft.replace(R.id.frame, FinishedFragment.newInstance(), FINISHED_FRAGMENT_TAG);
ft.commit();
return true;
case R.id.questions:
ft.replace(R.id.frame, QuestionsFragment.newInstance(), QUESTIONS_FRAGMENT_TAG);
ft.commit();
return true;
default:
return true;
}
【问题讨论】:
标签: android android-fragments android-framelayout fragmenttransaction