远离'远离'在ViewPager

时间:2016-02-06 08:26:22

标签: android android-fragments android-viewpager android-recyclerview

我在Fragment中有几个RecyclerViewViewPager s。在第一个Fragment中的操作中,剩余的Fragment会更改它们显示的内容。

我可以从第一个访问所有Fragment并在其上调用更新方法。问题是,如果我不滑动到其他Fragment,则不会发生更新。事实上,在点击第一个Fragment中的任何操作按钮之前,我必须滑动到其他Fragment(无目的),以防止应用程序崩溃NullPointerException

我猜的原因是因为剩下的Fragmentnull,因为它们没有进入视野。

到目前为止,我尝试过这种方法,徒劳无功:

public void updatePager(int pagePosition)
{
    ((NMMain) getActivity()).dsFragment.updateDSFragment(dView);

    nMParentViewPager = (ViewPager) getActivity().findViewById(R.id.gsSupremePager);
    nMParentViewPager.getAdapter().notifyDataSetChanged();
    nMParentViewPager.setCurrentItem(pagePosition, true);
} // of updatePager()

Log

在滑动到片段后单击Fragment1 中的操作按钮

02-06 14:53:21.563 7765-8678/com.my A/NMDBHelper class: Create View-1 query: CREATE VIEW View_Temp 02-06 14:53:21.585 7765-8678/com.my A/NMDBHelper class: Create dealsView-2 query: CREATE TABLE D_View 02-06 14:53:21.748 7765-7765/com.my E/DSFragment: In frag2.updateFragment(): dView.size() = 3

单击Fragment1 中的操作按钮而不滑动到任何片段

02-06 14:58:52.691 11967-11967/com.nearme E/AndroidRuntime: FATAL EXCEPTION: main Process: com.my, PID: 11967 java.lang.NullPointerException at com.my.s.Frag2.updatePager(Frag2.java:xxx)

所以我的问题,

  • 无论FragmentViewPager的可见性如何,他们(Fragment)如何使用最新内容做好准备?

1 个答案:

答案 0 :(得分:0)

我思考的方式以及我提出问题的方式 - 太复杂了。

我要做的就是 预加载 片段页面。 This post解决了这个问题。所以,ViewPager.setOffscreenPageLimit()就是答案。

虽然这不是我的回答,但希望它会帮助那些碰到类似复杂性并落在这里的人。

感谢您查看,@ cricket_007以及所有其他人。