【发布时间】:2013-06-18 20:23:50
【问题描述】:
我有一个 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再次启动片段?
注意:这里的重点是我需要再次膨胀一个布局,这与之前膨胀的布局不同。代码如下:
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;
}
【问题讨论】:
-
@Waqas 我选的标题有误,我会改正的。我不是用它自己替换一个片段,我正在创建一个与当前片段相同类的新片段(你可以在我发布的代码中看到它)
标签: android android-fragments fragmenttransaction