如何动态添加两个或更多ListFragments

时间:2013-07-14 08:37:41

标签: android fragment android-listfragment

我有三个ListFragment是一项活动。对于第一个listFragment,我创建了一个ListFragment并使用一些 listItem 轻松扩充布局:

setListAdapter(new ArrayAdapter<String>(getActivity(), android.R.layout.simple_list_item_1, getResources.getStringArray(R.string.baal)));

第二个listFragment的项目将根据第一个ListFragment的所选项目进行更改,并以类似的方式更改第三个listFragment的项目将根据所选项目进行更改第二个ListFragment

第一个ListFragment是静态的,因为它不依赖于任何其他ListFragment。所以我只是用一些项目为它添加一个布局。

但第二和第三listFragments项需要经常更改。因此,每次点击事件时,我都需要在运行时使用新的 listitems 对其进行充气。因此,我认为第二个和第三个LisFragment需要通过每次使用新列表项进行充气来动态创建。我怎样才能做到这一点?我是Fragment的新手,我需要动态UI上的概念清晰。提前谢谢。

2 个答案:

答案 0 :(得分:1)

例如,您可以尝试清除第二个和第三个片段的适配器,然后添加所有必需的项目,这样您就不需要对整个片段进行充气,而只会改变内容。另外,根据适配器类型,您需要调用notifyDataSetChanged或不调用(例如,如果是ArrayAdapter)。

UPD:在您的主要商品点击事件中,您可以编写一些此类代码

            YourAdapter1 adapter1 = getFirstAdapter();
            adapter1.clear();
            adapter1.addAll(newItem1Collection);

            YourAdapter2 adapter2 = getSecondAdapter();
            adapter2.clear();
            adapter2.addAll(newItem2Collection);

YourAdapter1YourAdapter2应扩展ArrayAdapter,这也会自动调用notifyDataSetChange

答案 1 :(得分:0)

我建议您使用标签,为每个选项动态添加标签,并允许用户向后滑动以取消选择,例如面包屑导航。

您可以在此处查看相关问题: Android - How to create tabs on demand using existing layout?