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

Android:从 viewPager 中的 Fragment 为 ListView 的适配器调用 getview()

Android ViewPager 的使用

Android 中ViewPager练习

Android - V之ViewPager的使用

android 使用ViewPager开启应用时左右划动的界面