如何将 viewpager onPageSelected 传播到片段内的自定义视图
How to propagate viewpager's onPageSelected to a custom view inside a Fragment
所以我有这个结构:一个 Activity 有一个片段的 ViewPager,在这些片段上我有一个自定义视图。每次 ViewPager 选择其父片段时,自定义视图都需要知道。实施此行为的最佳方式是什么?
谢谢
在您的片段中,您应该编写一个方法来放置您想要的页码
int mCurrent;
Fragment newInstance(int current)
{
Fragment f = new Fragment();
Bundle args = new Bundle();
args.putInt("current", current);
f.setArguments(args);
return f;
}
@Override
public void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
mCurrent = getArguments() != null ? getArguments().getInt("current") : 1;
}
然后在您的寻呼机中 activity 为适配器制作一个内部 class,看起来像:
private class ScreenSlidePagerAdapter extends FragmentStatePagerAdapter {
public ScreenSlidePagerAdapter(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int position) {
return new Fragment().newInstance(mPager.getCurrentItem());
}
@Override
public int getCount() {
return NUM_PAGES;
}
}
就是这样:)
在您的 ViewPager 上,设置一个 OnPageChangeListener。选择新页面后,调用您的 FragmentPagerAdapter。在 FragmentPagerAdapter 中,您应该保留对包含要更新的视图的 Fragment 的引用。调用该片段以更新视图。
所以我有这个结构:一个 Activity 有一个片段的 ViewPager,在这些片段上我有一个自定义视图。每次 ViewPager 选择其父片段时,自定义视图都需要知道。实施此行为的最佳方式是什么?
谢谢
在您的片段中,您应该编写一个方法来放置您想要的页码
int mCurrent;
Fragment newInstance(int current)
{
Fragment f = new Fragment();
Bundle args = new Bundle();
args.putInt("current", current);
f.setArguments(args);
return f;
}
@Override
public void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
mCurrent = getArguments() != null ? getArguments().getInt("current") : 1;
}
然后在您的寻呼机中 activity 为适配器制作一个内部 class,看起来像:
private class ScreenSlidePagerAdapter extends FragmentStatePagerAdapter {
public ScreenSlidePagerAdapter(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int position) {
return new Fragment().newInstance(mPager.getCurrentItem());
}
@Override
public int getCount() {
return NUM_PAGES;
}
}
就是这样:)
在您的 ViewPager 上,设置一个 OnPageChangeListener。选择新页面后,调用您的 FragmentPagerAdapter。在 FragmentPagerAdapter 中,您应该保留对包含要更新的视图的 Fragment 的引用。调用该片段以更新视图。