使用单个片段进行多个UI任务?

时间:2014-02-27 03:57:27

标签: android android-fragments

我正在使用Fragment主细节架构
所有片段类具有相同的逻辑
是否可以从版面中“分离”Fragment并仅使用一个Fragment类
所以这段代码:

FragmentTransaction fragManager = getSupportFragmentManager().beginTransaction();

        if("001".equalsIgnoreCase(id)){
                    arguments.putString(Fragment001.ARG_ITEM_ID, id);
                    Fragment001 fragment = new Fragment001();
                    fragment.setArguments(arguments);                       fragManager.replace(R.id.item_detail_container, fragment);
        }
        else if("002".equalsIgnoreCase(id)){
                    arguments.putString(Fragment002.ARG_ITEM_ID, id);
                    Fragment002 fragment = new Fragment002();
                    fragment.setArguments(arguments);
                    fragManager.replace(R.id.item_detail_container, fragment);
        }

        fragManager.commit();

会变成像:

之类的东西
FragmentTransaction fragManager = getSupportFragmentManager().beginTransaction();               
                    GenericFragment fragment = new GenericFragment();                       
                    fragment.setUiId(id)
                    fragManager.replace(R.id.item_detail_container, fragment);
fragManager.commit();
  1. 列表项

1 个答案:

答案 0 :(得分:3)

是的,可以检查并选择在onCreateView中使用的布局......

public static final String ARG_ITEM_ID1 = "fragment001";

public static final String ARG_ITEM_ID2 = "fragment002";

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
         Bundle savedInstanceState) {
     View rootView = null;
     String id = "fragment001";
     if(ARG_ITEM_ID1.equalsIgnoreCase(id)){

         rootView = inflater.inflate(R.layout.fragment_1_layout, container, false);
     }
     else {

        rootView = inflater.inflate(R.layout.fragment_2_layout, container, false);
     }
     return rootView;
}