Closed. This question is off-topic。它当前不接受答案。
                            
                        
                    
                
                            
                                
                
                        
                            
                        
                    
                        
                            想改善这个问题吗? Update the question,所以它是on-topic,用于堆栈溢出。
                        
                        3年前关闭。
                                                                                            
                
        
我将FragmentPageAdapter用于ViewPagerFragments。每个Fragment都包含带有小型图库的适配器。

在某些片段上n位置,我有更改图库的按钮。当我更新此内部适配器的数据集时,我试图在notifyDataSetChanged()上调用FragmentPageAdapter,但它不会刷新视图。

但是,如果我切换到n+2片段,然后又切换回n片段,则图库会像应该的那样进行更新。看起来它已将其存储在内存中...

所以问题是:
如何强制FragmentPageAdapter仅在当前位置(当前可见)片段上重新创建视图?

最佳答案

解决方案是覆盖getItemPosition(Object)并返回POSITION_NONE

通过检查片段在适配器中的位置是否已更改,这将强制PagerAdapter重新创建已加载的片段。既然有,并且您要用“较新的”片段替换“旧的”片段,您就告诉适配器当前的片段没有位置,您需要它重新加载该位置的内容。

10-05 20:22