【发布时间】:2017-07-27 16:48:58
【问题描述】:
嗯,我认为标题是不言自明的。我的HomeActivity 中有一个ViewPager,ViewPager 目前包含 5 个片段。
当通过调用ViewPager的onPageScrolled可以看到其中一个片段时,我想根据HomeActiviy中的某些条件修改当前显示的片段内的一些视图。
经过一番研究,我似乎找不到一个很好的方式来沟通HomeActivity --> ViewPager中的片段。
我使用Interface轻松解决了Fragments in ViewPager --> HomeActivity方向的通信,但这个技巧似乎不适用于另一个方向。
我可以每次使用FragmentStatePagerAdapter上的方法访问当前显示的片段
public Fragment getActiveFragment(int position){
return myFragmentsList.get(position);
}
但是,通过这样做,我必须将每个 Fragment 转换为它的类 MyFragment1 MyFragment2 MyFragment3....
任何简单的清洁方法来实现这一目标?以下是代码的相关部分:
mPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
if (currentStatus == 1){
Fragment activeFrag = mPagerAdapter.getActiveFragment(mPager.getCurrentItem());
//here I would like to modify one of the 5 fragments
}
@Override
public void onPageSelected(int position) {}
@Override
public void onPageScrollStateChanged(int state) {}
});
【问题讨论】:
标签: android android-fragments android-viewpager