【问题标题】:Android ViewPager adapter modify other pagesAndroid ViewPager 适配器修改其他页面
【发布时间】:2013-05-09 20:48:10
【问题描述】:

我有一个使用 FragmentStatePagerAdapter 的 Viewpager。每个页面都是一个片段。我的页面包含一个默认可见的线性布局 (llTags)。

如果用户点击页面(片段的主要布局),线性布局必须是不可见的(有效),但其他线性布局(其他页面中的 llTags)也需要更改。

如果我单击,线性布局的可见性会在除上一个和下一个之外的所有页面上更改。 这是因为不再为下一个/上一个项目调用来自适配器的 getItem。 我如何通知这些页面。

ps:我有一个 newInstance 方法和一个公共 void setTagslayoutVisible(boolean) 用于更改适配器的可见性。

【问题讨论】:

标签: android android-fragments android-viewpager fragmentstatepageradapter


【解决方案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。
  • 欢迎您,只要它有效并分享您的经验。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多