我有一个应用程序。那是使用片段。主要活动以 2 个片段开始。其中一个片段包含一个按钮,用于在运行时添加第三个片段,如下所示:
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Activity activity = getActivity();
if (fragment3 == null) {
getFragmentManager()
.beginTransaction()
.add(R.id.fragment_content3, new ThirdFragment())
.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE)
.commit();
}
ThirdFragment 类如下所示:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Log.v(getTag(), "FRAG onCreate CALLED!");
this.setRetainInstance(true);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.third_fragment, container, false);
return view;
问题是我无法理解如何在重新创建 Activity 时保持该片段的视图不被删除。我试图@Override onCreate() 方法并使用 setRetainInstance(true) 无济于事。
所以,我的问题是:
当重新创建 Activity 时,保持动态(在运行时)添加的 Fragment 不被删除的正确方法是什么?