下面列出了android.support.v4.view.ViewPager#getAdapter ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
public static void setupWithViewPager(@NonNull final ViewPager viewPager,
@NonNull final GroupScene groupScene,
@NonNull final List<UserVisibleHintGroupScene> children) {
if (viewPager.getAdapter() != null) {
throw new IllegalArgumentException("ViewPager already have a adapter");
}
ScenePageAdapter scenePageAdapter = new ScenePageAdapter(groupScene) {
@Override
public int getCount() {
return children.size();
}
@Override
public UserVisibleHintGroupScene getItem(int position) {
return children.get(position);
}
};
viewPager.setAdapter(scenePageAdapter);
}
public void setViewPager(ViewPager view) {
if (view == null) {
removeAllViews();
this.mViewPager = null;
} else if (this.mViewPager != view) {
if (this.mViewPager != null) {
this.mViewPager.setOnPageChangeListener(null);
}
if (view.getAdapter() == null) {
throw new IllegalStateException("ViewPager does not have adapter instance.");
}
this.mViewPager = view;
view.setOnPageChangeListener(this);
notifyDataSetChanged();
}
}
@Override
public void setViewPager(ViewPager view) {
if (mViewPager == view) {
return;
}
if (mViewPager != null) {
mViewPager.setOnPageChangeListener(null);
}
final PagerAdapter adapter = view.getAdapter();
if (adapter == null) {
throw new IllegalStateException("ViewPager does not have adapter instance.");
}
mViewPager = view;
view.setOnPageChangeListener(this);
notifyDataSetChanged();
}
@Override
public void setViewPager(ViewPager viewPager) {
if (mViewPager == viewPager) {
return;
}
if (mViewPager != null) {
//Clear us from the old pager.
mViewPager.setOnPageChangeListener(null);
}
if (viewPager.getAdapter() == null) {
throw new IllegalStateException("ViewPager does not have adapter instance.");
}
mViewPager = viewPager;
mViewPager.setOnPageChangeListener(this);
invalidate();
post(new Runnable() {
@Override public void run() {
if (mFades) {
post(mFadeRunnable);
}
}
});
}
@Override
public void setViewPager(ViewPager view) {
if (mViewPager == view) {
return;
}
if (mViewPager != null) {
mViewPager.setOnPageChangeListener(null);
}
final PagerAdapter adapter = view.getAdapter();
if (adapter == null) {
throw new IllegalStateException("ViewPager does not have adapter instance.");
}
mViewPager = view;
view.setOnPageChangeListener(this);
notifyDataSetChanged();
}
@Override
public void setViewPager(ViewPager view) {
if (mViewPager == view) {
return;
}
if (mViewPager != null) {
mViewPager.setOnPageChangeListener(null);
}
PagerAdapter adapter = view.getAdapter();
if (adapter == null) {
throw new IllegalStateException("ViewPager does not have adapter instance.");
}
mViewPager = view;
view.setOnPageChangeListener(this);
notifyDataSetChanged();
}
@Override
public void setViewPager(ViewPager view) {
if( mViewPager == view ) {
return;
}
if( mViewPager != null ) {
mViewPager.setOnPageChangeListener(null);
}
mPagerAdapter = view.getAdapter();
if( !(mPagerAdapter instanceof ConversationStateProvider) ) {
throw new IllegalStateException("Adapter has to implement ConversationStateProvider.");
}
mStateProvider = (ConversationStateProvider)mPagerAdapter;
if( mPagerAdapter == null ) {
throw new IllegalStateException("ViewPager does not have adapter instance.");
}
mViewPager = view;
mViewPager.setOnPageChangeListener(this);
invalidate();
}
@Override
public void setViewPager(ViewPager viewPager) {
if (mViewPager == viewPager) {
return;
}
if (mViewPager != null) {
//Clear us from the old pager.
mViewPager.setOnPageChangeListener(null);
}
if (viewPager.getAdapter() == null) {
throw new IllegalStateException("ViewPager does not have adapter instance.");
}
mViewPager = viewPager;
mViewPager.setOnPageChangeListener(this);
invalidate();
}
@Override
public void setupWithViewPager(@Nullable ViewPager viewPager) {
super.setupWithViewPager(viewPager);
if (viewPager != null) {
PagerAdapter adapter = viewPager.getAdapter();
if (adapter != null && adapter instanceof BasePagerAdapterWithIcon) {
int n = getTabCount();
titleViews = new CustomTabTitleView[n];
for (int i = 0; i < n; i++) {
titleViews[i] = new CustomTabTitleView(getContext());
titleViews[i].setTitle(adapter.getPageTitle(i).toString());
titleViews[i].setImageResource(((BasePagerAdapterWithIcon) adapter).getPageIcon(i));
// noinspection ConstantConditions
getTabAt(i).setCustomView(titleViews[i]);
}
}
} else {
titleViews = null;
}
}
@Override
public void setViewPager(ViewPager viewPager) {
if (mViewPager == viewPager) {
return;
}
if (mViewPager != null) {
//Clear us from the old pager.
mViewPager.setOnPageChangeListener(null);
}
if (viewPager.getAdapter() == null) {
throw new IllegalStateException("ViewPager does not have adapter instance.");
}
mViewPager = viewPager;
mViewPager.setOnPageChangeListener(this);
invalidate();
post(new Runnable() {
@Override public void run() {
if (mFades) {
post(mFadeRunnable);
}
}
});
}
@Override
public void setViewPager(ViewPager view) {
if (mViewPager == view) {
return;
}
if (mViewPager != null) {
mViewPager.setOnPageChangeListener(null);
}
if (view.getAdapter() == null) {
throw new IllegalStateException("ViewPager does not have adapter instance.");
}
mViewPager = view;
mViewPager.setOnPageChangeListener(this);
invalidate();
}
/**
* Set the {@link ViewPager} associated with this widget indicator.
*
* @param pager {@link ViewPager} to attach
*/
@SuppressWarnings("unused")
public void setViewPager(ViewPager pager) {
if (pager.getAdapter() == null) {
throw new IllegalStateException("ViewPager does not have adapter instance.");
}
setViewPager(pager, pager.getAdapter().getCount());
}
@Override
public void setViewPager(ViewPager view) {
if (mViewPager == view) {
return;
}
if (mViewPager != null) {
mViewPager.setOnPageChangeListener(null);
}
if (view.getAdapter() == null) {
throw new IllegalStateException("ViewPager does not have adapter instance.");
}
mViewPager = view;
mViewPager.setOnPageChangeListener(this);
invalidate();
}
/** 关联ViewPager */
public void setViewPager(ViewPager vp) {
if (vp == null || vp.getAdapter() == null) {
throw new IllegalStateException("ViewPager or ViewPager adapter can not be NULL !");
}
this.mViewPager = vp;
this.mViewPager.removeOnPageChangeListener(this);
this.mViewPager.addOnPageChangeListener(this);
notifyDataSetChanged();
}
@Override
public void setViewPager(ViewPager view) {
if (mViewPager == view) {
return;
}
if (mViewPager != null) {
mViewPager.setOnPageChangeListener(null);
}
if (view.getAdapter() == null) {
throw new IllegalStateException("ViewPager does not have adapter instance.");
}
mViewPager = view;
mViewPager.setOnPageChangeListener(this);
invalidate();
}
public void setViewPager(ViewPager pager) {
this.pager = pager;
if (pager.getAdapter() == null) {
throw new IllegalStateException("ViewPager does not have adapter instance.");
}
pager.setOnPageChangeListener(pageListener);
notifyDataSetChanged();
}
@Override
public void setViewPager(ViewPager view, int initialPosition) {
if (mViewPager == view) {
return;
}
if (mViewPager != null) {
mViewPager.setOnPageChangeListener(null);
}
if(view==null)
{
mViewPager = null;
return;
}
if (view.getAdapter() == null) {
throw new IllegalStateException("ViewPager does not have adapter instance.");
}
mViewPager = view;
mViewPager.setOnPageChangeListener(this);
//setViewPager(view);
mIsCycleScroll = mViewPager.getAdapter() != null && mViewPager.getAdapter() instanceof CycleIconPagerAdapter;
if (mIsCycleScroll) {
// force snap
mSnap = true;
int count = mViewPager.getAdapter().getCount();
int actualCount = ((CycleIconPagerAdapter) mViewPager.getAdapter()).getActualCount();
if (actualCount != 0) {
initialPosition += (count / 2) / actualCount * actualCount;
} else {
initialPosition = 0;
}
}
setCurrentItem(initialPosition);
}
@Override
public void setViewPager(ViewPager view) {
if (mViewPager == view) {
return;
}
if (mViewPager != null) {
mViewPager.setOnPageChangeListener(null);
}
if (view.getAdapter() == null) {
throw new IllegalStateException("ViewPager does not have adapter instance.");
}
mViewPager = view;
mViewPager.setOnPageChangeListener(this);
invalidate();
}
@Override
public void setViewPager(ViewPager view) {
if (mViewPager == view) {
return;
}
if (mViewPager != null) {
mViewPager.setOnPageChangeListener(null);
}
if (view.getAdapter() == null) {
throw new IllegalStateException("ViewPager does not have adapter instance.");
}
mViewPager = view;
mViewPager.setOnPageChangeListener(this);
invalidate();
}
@Override
public void onNestedScroll(CoordinatorLayout coordinatorLayout, FloatingActionButton child, View target, int dxConsumed, int dyConsumed, int dxUnconsumed, int dyUnconsumed) {
super.onNestedScroll(coordinatorLayout, child, target, dxConsumed, dyConsumed, dxUnconsumed, dyUnconsumed);
if (child.getTag() == null) {
return;
}
// try to get the current page, if there's any.
View view = coordinatorLayout;
ViewPager viewPager = (ViewPager) coordinatorLayout.findViewById(R.id.viewPager);
if (viewPager != null && viewPager.getAdapter() instanceof FragmentAdapter) {
int currentPage = viewPager.getCurrentItem();
FragmentAdapter pagerAdapter = (FragmentAdapter) viewPager.getAdapter();
Fragment currentItem = pagerAdapter.getItem(currentPage);
view = currentItem.getView();
}
if (view == null) {
// We do not have a view we can immediately find.
child.hide();
return;
}
// Hide if we're over the first item
RecyclerView recyclerView = (RecyclerView) view.findViewById(R.id.list);
if (recyclerView != null && recyclerView.getLayoutManager() instanceof LinearLayoutManager) {
LinearLayoutManager layoutManager = (LinearLayoutManager) recyclerView.getLayoutManager();
if (layoutManager.findFirstVisibleItemPosition() == 0) {
child.hide();
} else if (dyConsumed > 1 && child.getVisibility() == View.VISIBLE)
child.hide();
else if (dyConsumed < 1 && child.getVisibility() != View.VISIBLE)
child.show();
} else {
// no recyclerview to attach to?
child.hide();
}
}