如何在活动中添加动态数量的片段

时间:2012-07-20 13:36:42

标签: android android-layout android-fragments

我有一个名为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?如果没有,我应该做什么,你能举个例子吗?谢谢!

1 个答案:

答案 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();
相关问题