我的ViewPager位于嵌套片段中,因为我也有导航抽屉。我的问题是如何在MainActivity.java中调用viewpager的实例,因此我可以使用方法setCurrentItem()
中的MainActivity.java中的方法onBackPressed()
来设置viewpager的当前项,例如当用户在第三个片段上时viewpager当他按下后退按钮时,他应该返回第一个片段。
答案 0 :(得分:0)
首先,您必须将RecyclerView声明为public。不确定它是否必须是静态的,但它会告诉你它是否必须。
其次,您需要调用包含RecyclerView的片段的实例。
例如,Fragment recyclerFrag = new RecyclerFrag();
之后,尝试从该实例调用RecyclerView并使用setCurrentItem()
。例如,recyclerFrag.recyclerView.setCurrentItem(0)
。
答案 1 :(得分:0)
我找到了解决方案。您应首先在FragmentActivity中创建一个方法,其中初始化您的ViewPager
并设置返回类型ViewPager
。像这样:
public ViewPager getViewPager() {
return mViewPager; // instance of view pager
}
之后在Activity中创建Fragment的对象,您将调用view pager的实例,如下所示:
YourFragment fragment = new YourFragment();
在我的情况下,我应该在onBackPressed()
中调用viewpager:
HomeFragment fragment1 = new HomeFragment();
if (fragment1.getViewPager().getCurrentItem() == 1 || fragment1.getViewPager().getCurrentItem() == 2) {
fragment1.getViewPager().setCurrentItem(0);
} else {
super.onBackPressed();
}