Android ListView正在重新加载所有项目(而不仅仅是附加新项目)我从片段返回后,我将一个新项目插入到listview中(在另一个片段中,ListFragment)
我有以下代码通过导航抽屉启动片段:
FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
SherlockFragment frag = null;
// Locate Position
switch (position) {
case 0:
frag = ListFragment.newInstance();
ft.replace(R.id.content_frame, frag);
break;
case 1:
frag = InsertNewsFragment.newInstance();
ft.replace(R.id.content_frame, frag);
break;
default:
frag = UnderConstructionFragment.newInstance();
ft.replace(R.id.content_frame, frag);
break;
}
ft.commit();
listview.setItemChecked(position, true);
drawlayout.closeDrawer(listview);
问题在于,当我最初加载活动时,ListFragment已启动,但当用户打开导航抽屉并选择添加新闻时,我用InsertNewsFragment替换当前片段,insertNewsFragment将数据添加到显示的适配器中ListFragment。添加新闻元素后,用户在导航栏中选择列表片段选项,但我希望同样的列表视图存在,只需将新数据附加到列表视图即可。但是会发生的是整个列表视图再次从头开始加载。我可以告诉我如何从另一个片段返回时如何将项目附加到列表视图,而不是重新加载整个列表视图。在此先感谢:)
答案 0 :(得分:0)
你不能这样做,因为你要替换listfragment。最初你必须检查列表视图是否打开如果它是真的然后关闭所有打开的其他片段并将它(listview片段)带到顶部然后再不设置适配器再次使用notifydatasetchanged方法