我在Fragment
中有几个RecyclerView
个ViewPager
s。在第一个Fragment
中的操作中,剩余的Fragment
会更改它们显示的内容。
我可以从第一个访问所有Fragment
并在其上调用更新方法。问题是,如果我不滑动到其他Fragment
,则不会发生更新。事实上,在点击第一个Fragment
中的任何操作按钮之前,我必须滑动到其他Fragment
(无目的),以防止应用程序崩溃NullPointerException
。
我猜的原因是因为剩下的Fragment
是null
,因为它们没有进入视野。
到目前为止,我尝试过这种方法,徒劳无功:
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)
所以我的问题,
Fragment
中ViewPager
的可见性如何,他们(Fragment
)如何使用最新内容做好准备? 答案 0 :(得分:0)
我思考的方式以及我提出问题的方式 - 太复杂了。
我要做的就是 预加载 片段页面。 This post解决了这个问题。所以,ViewPager.setOffscreenPageLimit()
就是答案。
虽然这不是我的回答,但希望它会帮助那些碰到类似复杂性并落在这里的人。
感谢您查看,@ cricket_007以及所有其他人。