下面列出了android.support.v4.view.ViewPager#getContext ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
@BindingAdapter(value = {"fragments", "curIndex"}, requireAll = false)
public static void bind(ViewPager container, final List<? extends Fragment> fragments, int curIndex) {
if(!(container.getContext() instanceof FragmentActivity))
throw new IllegalArgumentException(TAG + "context must instanceof FragmentActivity");
FragmentManager fm = ((FragmentActivity) container.getContext()).getSupportFragmentManager();
if (fragments != null && !fragments.isEmpty()) {
PagerAdapter adapter = container.getAdapter();
if(adapter == null) {
// initialize, fragments are only added once !!!
container.setAdapter(adapter = new FragmentPagerAdapter(fm) {
@Override
public Fragment getItem(int position) {
return fragments.get(position);
}
@Override
public int getCount() {
return fragments.size();
}
});
}
adapter.notifyDataSetChanged();
if(curIndex >= 0 && curIndex < fragments.size())
container.setCurrentItem(curIndex);
}
}
private static void setDuration(ViewPager pager, int duration) {
try {
FixedSpeedScroller scroller = new FixedSpeedScroller(pager.getContext(), new AccelerateDecelerateInterpolator(), duration);
Field field = ViewPager.class.getDeclaredField("mScroller");
field.setAccessible(true);
field.set(pager, scroller);
} catch (Exception e) {
e.printStackTrace();
}
}
public ViewPageFragmentAdapter(FragmentManager fm,
PagerSlidingTabStrip pageStrip, ViewPager pager) {
super(fm);
mContext = pager.getContext();
mPagerStrip = pageStrip;
mViewPager = pager;
mViewPager.setAdapter(this);
mPagerStrip.setViewPager(mViewPager);
}
public MorePagerAdapter(ViewPager viewPager, List<BaseAction> actions) {
this.context = viewPager.getContext();
this.viewPager = viewPager;
this.actionList = actions;
this.gridViewCount = (actions.size() + ITEM_COUNT_PER_GRID_VIEW - 1) / ITEM_COUNT_PER_GRID_VIEW;
}
public ActionsPagerAdapter(ViewPager viewPager, List<BaseAction> actions) {
this.context = viewPager.getContext();
this.actions = new ArrayList<>(actions);
this.viewPager = viewPager;
this.gridViewCount = (actions.size() + ITEM_COUNT_PER_GRID_VIEW - 1) / ITEM_COUNT_PER_GRID_VIEW;
}