我有一个fragment
(我们称之为MyFragment),根据传递的参数膨胀不同的布局。
如果从另一个片段启动MyFragment,则一切正常。但是,如果MyFragment处于活动状态,并且我想使用不同的布局参数启动新的MyFragment,则fragmentManager
根本不会创建新的片段。
data.setInt("Layout index",i);
fragmentTab0 = (Fragment) new MyFragment();
fragmentTab0.setArguments(data);
fragmentTransaction.replace(R.id.fragmentContent, fragmentTab0, "MY");
fragmentTransaction.addToBackStack(null);
fragmentTransaction.commit();
我应该如何说服fragmentTransaction
再次启动Fragment,而不是强制它这样做?
注意:关键点在于我需要再次填充一个布局,这个布局与之前填充的布局不同。代码看起来像这样:
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
switch( getArguments().getInt("Layout index") ) {
case 1:
rootView = inflater.inflate(R.layout.firstlayout, container, false);
break;
case 2:
rootView = inflater.inflate(R.layout.secondlayout, container, false);
break;
case 3:
rootView = inflater.inflate(R.layout.thirdlayout, container, false);
break;
default: break;
}