似乎之前讨论过刷新问题,但没有解决方案为我工作。使用FragmentStatePagerAdapter时刷新片段视图
我在做什么: 我正在使用FragmentStatePagerAdapter。适配器的每个位置都包含一个具有线性布局的片段,该布局具有象棋般的外观,每个单元由一个CheckedTextView表示。
还有一个应监听点击并删除单元格上的先前选择并进行新选择的侦听器。
请告诉我工作: 每个片段的所有数据/默认状态(而片段在列表加载计算)
正确加载当我点击从保存的细胞列表中的所有状态的细胞被正确提取,我可以在调试时看到代码中的状态改变。同时,我为CheckedTextView分配了一个代表单元格的新状态。这是设置,如:
的问题: 即使值存储和分配正确的观点不能被刷新,没有更新的视图中的单元格的值。
提示我已经试过未工作: 1.呼叫adapter.notifyDataSetChanged: 可谓是同时使用FragmentStatePagerAdapter只有当我们已经覆盖:
@Override
public int getItemPosition(Object object){
return POSITION_NONE;
}
2.添加覆盖DestroyItem的方法,并将片段添加到getItem上的Map上:
这是不合适的,因为我正在处理FragmentStatePagerAdapter,所以使用这个pagerAdapter的全部目的将会消失。
3.调用无效: 这是不适合这种情况,我需要实时刷新。
4. instantiateItem()中的setTag()方法: 我不认为这在这种情况下是合适的。
参考线: Refresh images on FragmentStatePagerAdapter on resuming activity
ViewPager PagerAdapter not updating the View
notifyDataSetChanged fails to update ListView
我试图说明我的问题尽可能讲清楚,如果有人需要更多的澄清,不要问。
紧急答复将高度赞赏,
干杯
****更新*****
我使用,而不是默认的ViewPager ViewPagerIndicator。
在你的设置中,每个片段代表什么?它一次只能在屏幕上显示一个片段吗?你添加的代码在哪里?它在片段类中吗?最后,什么是GridRow? – 2013-03-04 09:48:22
嗨谢里夫,每个片段代表一个国际象棋棋盘。我有一个调用容器片段的活动,这个containerFragment有一个viewpager,它具有FragmentStatePagerAadaper集合。每个适配器项目都是一个片段,并且在onCreatView的这个片段中,每个棋子视图都被初始化。此外,单元的监听器位于同一个片段中,我检查当前状态和新状态并相应地更改状态。 GridRow只是一行代表单元格的checkedTextview。我希望这回答你所有的问题,任何提示....? – AliR 2013-03-05 00:35:07
事实上,一切都发生在你的片段内意味着所有这些麻烦都不需要。你确定你的选择器(背景)是正确的吗?你可以显示它和你的XML每个单元格。通常情况下,当您试图更新viewpager中的特定片段时,视图不会更新。 – 2013-03-05 08:59:55