Android ViewPager 适配器修改其他页面
Posted
技术标签:
【中文标题】Android ViewPager 适配器修改其他页面【英文标题】:Android ViewPager adapter modify other pages 【发布时间】:2013-05-09 20:48:10 【问题描述】:我有一个使用 FragmentStatePagerAdapter 的 Viewpager。每个页面都是一个片段。我的页面包含一个默认可见的线性布局 (llTags)。
如果用户点击页面(片段的主要布局),线性布局必须是不可见的(有效),但其他线性布局(其他页面中的 llTags)也需要更改。
如果我单击,线性布局的可见性会在除上一个和下一个之外的所有页面上更改。 这是因为不再为下一个/上一个项目调用来自适配器的 getItem。 我如何通知这些页面。
ps:我有一个 newInstance 方法和一个公共 void setTagslayoutVisible(boolean) 用于更改适配器的可见性。
【问题讨论】:
我们可以看看一些代码吗? 适配器:pastebin.com/RGPkJgCV 片段页面:pastebin.com/UTDADYZx 我知道我需要更改捆绑包中的数据(现在就这样做) 【参考方案1】:下一个和上一个已经加载,适配器不会调用创建。
快速尝试一下,如果您的片段已经加载,则在您的适配器 get 函数中它会返回这些对象。所以只需添加类似这样的内容
if(myMap.containsKey(position))
LiveStreamFullScreenFragment lfsf = (LiveStreamFullScreenFragment) myMap.get(position));
lfsf.setShowTags(mShowTags);
return lfsf;
else
在你的片段类中
public void setShowTags(boolean showtags)
mShowTags = showtags;
if(!mShowTags)
llLiveStreamTags.setVisibility(View.GONE);
希望这对您有所帮助并享受您的工作。
【讨论】:
Tnx 但不起作用。我用另一种方式修复了它。使用我的片段的构造函数而不是 newInstance 并为我的索引设置一个静态 int。 欢迎您,只要它有效并分享您的经验。以上是关于Android ViewPager 适配器修改其他页面的主要内容,如果未能解决你的问题,请参考以下文章
Android 联合ViewPager 与 Fragment