我有一个应用程序。那就是使用Fragments。主要活动以2个片段开始。其中一个片段中包含用于在运行时添加一个3'rd片段像这样的按钮:保留在运行时添加的片段
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)无济于事。
所以,我的问题是:
什么是正确的做法,以保持一个动态的(在运行时)从当活动被重新被删除添加片段?