我有一个名为fragment
DetailFragment
extends Fragment
的{{1}}课程,其中包含必要的Override
方法:
public class DetailFragment extends Fragment{
//Some neccessary methods are over here
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// TODO Auto-generated method stub
View view = inflater.inflate(R.layout.details, container, false);
return view;
}
}
我有一项主要活动:FragmentActivity extends FragmentActivity
设置内容:setContentView(R.layout.main);
。如果我想从DetailFragment
添加FragmentActivity
,我必须在LinearLayout
布局文件中使用android:id="@+id/container_fragment"
声明main.xml
(或任何布局)。通过这种方式,我可以添加DetailFragment
:
FragmentManager fm = getSupportFragmentManager();
FragmentTransaction ft = fm.beginTransaction();
DetailFragment df = new DetailFragment();
ft.add(R.id.container_fragment, df);
ft.commit();
但是,我只能在DetailFragment
中添加1 container_fragment
。如果我想从活动中添加2个或更多DetailFragment
,我是否必须在container_fragment
布局中添加2个或更多其他main.xml
?如果没有,我应该做什么,你能举个例子吗?谢谢!
答案 0 :(得分:2)
布局可以包含多个片段,只需在调用add
类的FragmentTransaction
函数时指定不同的标记。
FragmentManager fm = getSupportFragmentManager();
FragmentTransaction ft = fm.beginTransaction();
ft.add(R.id.container_fragment, new DetailFragment(), "df_1");
ft.add(R.id.container_fragment, new DetailFragment(), "df_2");
ft.commit();