我有一个与ViewPager
片段(标签)的可变数量的活性。获取数据(异步)和填充ViewPager的片段
一旦如果相关联的(复杂的)数据已被加载启动活动检测。如果没有,则显示进度栏视图并开始提取数据的AsyncTask
。根据数据的不同,活动会创建多个片段(选项卡),并为每个片段提供一组数据。
我目前持有对片段的引用(我知道这是不鼓励的),并且当片段被重用时遇到各种各样的问题 - 我将数据提供给片段的错误实例。
那么,有没有解决这个问题的“android方式”?
我有一个与ViewPager
片段(标签)的可变数量的活性。获取数据(异步)和填充ViewPager的片段
一旦如果相关联的(复杂的)数据已被加载启动活动检测。如果没有,则显示进度栏视图并开始提取数据的AsyncTask
。根据数据的不同,活动会创建多个片段(选项卡),并为每个片段提供一组数据。
我目前持有对片段的引用(我知道这是不鼓励的),并且当片段被重用时遇到各种各样的问题 - 我将数据提供给片段的错误实例。
那么,有没有解决这个问题的“android方式”?
我碰到各种各样的问题,当片段得到重用
片段通常不会在ViewPager
得到重用。这不像AdapterView
,其中行被回收。使用FragmentPagerAdapter
或FragmentStatePagerAdapter
,一个片段表示一个且仅有一个页面。
我重新实例每次ViewPager(但片段得到重用?)
啊。这是一个稍微不同的问题。
的FragmentPagerAdapter
和FragmentStatePagerAdapter
股票实现做一些假设:
他们是在碎片完全控制,特别是在运行事务添加和从UI
这些碎片将只能被一个“逻辑”ViewPager
(IOW,重新创建ViewPager
的配置更改很好,但几乎可以)使用
复杂的是,这些适配器将片段存储在某些标签下,因此如果这些片段仍然存在于这些标签中,那么现有的片段将被使用,而不是创建新的片段。
那么,有没有解决这个问题的“android方式”?
从您的问题中不清楚为什么您甚至需要“重新实例化ViewPager
”。我假设这与某种刷新操作有关,或者是其他迫使你通过第二段描述的过程的东西。
你可以给my ArrayPagerAdpater
一试,因为它是关于外部代理摆弄碎片友好。由于您控制了片段的标签,因此您始终可以确定您正在使用正确的片段 - 而不是自己缓存它们,只需检索正确的片段并对其进行处理即可。
我会试试看。谢谢 – dacwe
我发现这[问题/答案](http:// stackoverflow。com/questions/7379165/update-data-in-listfragment-as-part-of-viewpager),但它不能完全回答我的问题。我每次都重新实例化'ViewPager'(但片段被重用?)。 – dacwe