【发布时间】:2020-01-07 04:48:43
【问题描述】:
我有一个 Activity 和许多片段在同一个 FrameLayout 中膨胀
<FrameLayout
android:id="@+id/content_frame"
android:layout_width="match_parent"
android:layout_height="match_parent" />
示例:mainActivity > 任何片段(按返回按钮)> 活动为空白。
在 onCreate 中:
layout = (FrameLayout)findViewById(R.id.content_frame);
layout.setVisibility(View.GONE);
当我开始一个片段时:
FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
ft.replace(R.id.content_frame, profileFragment);
ft.addToBackStack(null);
ft.commit();
layout.setVisibility(View.VISIBLE);
我想我需要在按下后再次使 frameLayout 的可见性 GONE,但我该怎么做呢?
我尝试了onBackPressed 并设置了layout.setVisibility(View.GONE);,但我无法返回片段,因为我直接进入了主页。
【问题讨论】:
-
如果你来自主要活动,那么你按下后退按钮,你期望得到什么?
-
我希望回到它,并真正看到它。由于
FrameLayout仍然可见,我想让它不可见,但我不能覆盖 onBackPressed,因为我无法像这样:activity > fragment1 > fragment2 > onBackPressed 它将直接进入活动并显示它,并且跳过片段2 -
只需将片段上的 OnCreateView() 覆盖方法更新为 stackoverflow.com/a/53813425/1298105