下面列出了android.support.v4.view.PagerAdapter#getCount ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
public void notifyDataSetChanged() {
mTabLayout.removeAllViews();
PagerAdapter adapter = mViewPager.getAdapter();
final int count = adapter.getCount();
for (int i = 0; i < count; i++) {
CharSequence title = adapter.getPageTitle(i);
if (title == null) {
title = EMPTY_TITLE;
}
addTab(title, i);
}
if (mSelectedTabIndex > count) {
mSelectedTabIndex = count - 1;
}
setCurrentItem(mSelectedTabIndex);
requestLayout();
}
public void notifyDataSetChanged() {
mTabLayout.removeAllViews();
PagerAdapter adapter = mViewPager.getAdapter();
IconPagerAdapter iconAdapter = null;
if (adapter instanceof IconPagerAdapter) {
iconAdapter = (IconPagerAdapter)adapter;
}
final int count = adapter.getCount();
for (int i = 0; i < count; i++) {
CharSequence title = adapter.getPageTitle(i);
if (title == null) {
title = EMPTY_TITLE;
}
int iconResId = 0;
if (iconAdapter != null) {
iconResId = iconAdapter.getIconResId(i);
}
addTab(i, title, iconResId);
}
if (mSelectedTabIndex > count) {
mSelectedTabIndex = count - 1;
}
setCurrentItem(mSelectedTabIndex);
requestLayout();
}
public void notifyDataSetChanged() {
mTabLayout.removeAllViews();
PagerAdapter adapter = mViewPager.getAdapter();
IconPagerAdapter iconAdapter = null;
if (adapter instanceof IconPagerAdapter) {
iconAdapter = (IconPagerAdapter)adapter;
}
final int count = adapter.getCount();
for (int i = 0; i < count; i++) {
CharSequence title = adapter.getPageTitle(i);
if (title == null) {
title = EMPTY_TITLE;
}
int iconResId = 0;
if (iconAdapter != null) {
iconResId = iconAdapter.getIconResId(i);
}
addTab(i, title, iconResId);
}
if (mSelectedTabIndex > count) {
mSelectedTabIndex = count - 1;
}
setCurrentItem(mSelectedTabIndex);
requestLayout();
}
public void notifyDataSetChanged() {
mTabLayout.removeAllViews();
PagerAdapter adapter = mViewPager.getAdapter();
IconPagerAdapter iconAdapter = null;
if (adapter instanceof IconPagerAdapter) {
iconAdapter = (IconPagerAdapter)adapter;
}
final int count = adapter.getCount();
for (int i = 0; i < count; i++) {
CharSequence title = adapter.getPageTitle(i);
if (title == null) {
title = EMPTY_TITLE;
}
int iconResId = 0;
if (iconAdapter != null) {
iconResId = iconAdapter.getIconResId(i);
}
addTab(i, title, iconResId);
}
if (mSelectedTabIndex > count) {
mSelectedTabIndex = count - 1;
}
setCurrentItem(mSelectedTabIndex);
requestLayout();
}
public void notifyDataSetChanged() {
mTabLayout.removeAllViews();
PagerAdapter adapter = mViewPager.getAdapter();
IconPagerAdapter iconAdapter = null;
if (adapter instanceof IconPagerAdapter) {
iconAdapter = (IconPagerAdapter)adapter;
}
final int count = adapter.getCount();
for (int i = 0; i < count; i++) {
CharSequence title = adapter.getPageTitle(i);
if (title == null) {
title = EMPTY_TITLE;
}
int iconResId = 0;
if (iconAdapter != null) {
iconResId = iconAdapter.getIconResId(i);
}
addTab(i, title, iconResId);
}
if (mSelectedTabIndex > count) {
mSelectedTabIndex = count - 1;
}
setCurrentItem(mSelectedTabIndex);
requestLayout();
}
public void notifyDataSetChanged() {
mTabLayout.removeAllViews();
PagerAdapter adapter = mViewPager.getAdapter();
IconPagerAdapter iconAdapter = null;
if (adapter instanceof IconPagerAdapter) {
iconAdapter = (IconPagerAdapter)adapter;
}
final int count = adapter.getCount();
for (int i = 0; i < count; i++) {
CharSequence title = adapter.getPageTitle(i);
if (title == null) {
title = EMPTY_TITLE;
}
int iconResId = 0;
if (iconAdapter != null) {
iconResId = iconAdapter.getIconResId(i);
}
addTab(i, title, iconResId);
}
if (mSelectedTabIndex > count) {
mSelectedTabIndex = count - 1;
}
setCurrentItem(mSelectedTabIndex);
requestLayout();
}
/**
* scroll only once
*/
public void scrollOnce() {
PagerAdapter adapter = getAdapter();
int currentItem = getCurrentItem();
int totalCount;
if (adapter == null || (totalCount = adapter.getCount()) <= 1) {
return;
}
int nextItem = (direction == LEFT) ? --currentItem : ++currentItem;
if (nextItem < 0) {
if (isCycle) {
setCurrentItem(totalCount - 1, isBorderAnimation);
}
} else if (nextItem == totalCount) {
if (isCycle) {
setCurrentItem(0, isBorderAnimation);
}
} else {
setCurrentItem(nextItem, true);
}
}
public void notifyDataSetChanged() {
mTabLayout.removeAllViews();
PagerAdapter adapter = mViewPager.getAdapter();
IconPagerAdapter iconAdapter = null;
if (adapter instanceof IconPagerAdapter) {
iconAdapter = (IconPagerAdapter)adapter;
}
final int count = adapter.getCount();
for (int i = 0; i < count; i++) {
CharSequence title = adapter.getPageTitle(i);
if (title == null) {
title = EMPTY_TITLE;
}
int iconResId = 0;
if (iconAdapter != null) {
iconResId = iconAdapter.getIconResId(i);
}
addTab(i, title, iconResId);
}
if (mSelectedTabIndex > count) {
mSelectedTabIndex = count - 1;
}
setCurrentItem(mSelectedTabIndex);
requestLayout();
}
public void notifyDataSetChanged() {
mTabLayout.removeAllViews();
PagerAdapter adapter = mViewPager.getAdapter();
IconPagerAdapter iconAdapter = null;
if (adapter instanceof IconPagerAdapter) {
iconAdapter = (IconPagerAdapter)adapter;
}
final int count = adapter.getCount();
for (int i = 0; i < count; i++) {
CharSequence title = adapter.getPageTitle(i);
if (title == null) {
title = EMPTY_TITLE;
}
int iconResId = 0;
if (iconAdapter != null) {
iconResId = iconAdapter.getIconResId(i);
}
addTab(i, title, iconResId);
}
if (mSelectedTabIndex > count) {
mSelectedTabIndex = count - 1;
}
setCurrentItem(mSelectedTabIndex);
requestLayout();
}
@Override
public void onPageSelected(int position) {
PagerAdapter adapter = RtlViewPager.super.getAdapter();
if (isRtl() && adapter != null) {
position = adapter.getCount() - position - 1;
}
mListener.onPageSelected(position);
}
@Override
public void notifyDataSetChanged() {
mLayout.removeAllViews();
PagerAdapter adapter = mViewPager.getAdapter();
int count = adapter.getCount();
for (int i = 0; i < count; i++) {
View view = createAndRenderView(i);
mLayout.addView(view);
}
if (mSelectedIndex > count) {
mSelectedIndex = count - 1;
}
setCurrentItem(mSelectedIndex);
requestLayout();
}
@Override protected void populateTabStrip() {
final PagerAdapter adapter = viewPager.getAdapter();
if (adapter == null) {
return;
}
for (int i = 0; i < adapter.getCount(); i++) {
CharSequence title = adapter.getPageTitle(i);
final View tabView = (tabProvider == null) ? createDefaultTabView(title)
: tabProvider.createTabView(tabStrip, i, title);
if (tabView == null) {
throw new IllegalStateException("tabView is null.");
}
if (distributeEvenly) {
LinearLayout.LayoutParams lp =
(LinearLayout.LayoutParams) tabView.getLayoutParams();
lp.width = 0;
lp.weight = 1;
}
if (internalTabClickListener != null) {
tabView.setOnClickListener(internalTabClickListener);
}
tabStrip.addView(tabView);
if (i == getCurrentItem()) {
tabView.setSelected(true);
}
}
}
@Override
public void setCurrentItem(int position, boolean smoothScroll) {
PagerAdapter adapter = super.getAdapter();
if (adapter != null && isRtl()) {
position = adapter.getCount() - position - 1;
}
super.setCurrentItem(position, smoothScroll);
}
@Override
public void setAdapter(PagerAdapter adapter) {
if (!(adapter instanceof AbstractSlidePagerAdapter)) {
throw new IllegalArgumentException("PagerAdapter should be a subclass of AbstractSlidePagerAdapter");
}
super.setAdapter(adapter);
if (mStartAtEnd) {
int position = adapter.getCount() - 1;
setCurrentItem(position >= 0 ? position : 0);
}
}
@Override
protected boolean isReadyForPullEnd() {
ViewPager refreshableView = getRefreshableView();
PagerAdapter adapter = refreshableView.getAdapter();
if (null != adapter) {
return refreshableView.getCurrentItem() == adapter.getCount() - 1;
}
return false;
}
private void populateTabStrip() {
final PagerAdapter adapter = viewPager.getAdapter();
final OnClickListener tabClickListener = new TabClickListener();
for (int i = 0; i < adapter.getCount(); i++) {
final View tabView = (tabProvider == null)
? createDefaultTabView(adapter.getPageTitle(i))
: tabProvider.createTabView(tabStrip, i, adapter);
if (tabView == null) {
throw new IllegalStateException("tabView is null.");
}
if (distributeEvenly) {
LinearLayout.LayoutParams lp = (LinearLayout.LayoutParams) tabView.getLayoutParams();
lp.width = 0;
lp.weight = 1;
}
tabView.setOnClickListener(tabClickListener);
tabStrip.addView(tabView);
if (i == viewPager.getCurrentItem()) {
tabView.setSelected(true);
}
}
}
@Override
public void onChanged() {
PagerAdapter adapter = mPager.getAdapter();
if (adapter instanceof InfinitePagerAdapter) {
mTotalSlides = ((InfinitePagerAdapter) adapter).getRealCount();
} else {
mTotalSlides = adapter.getCount();
}
}
public static int getAdapterSize(ViewPager viewPager) {
if (viewPager instanceof InfiniteViewPager) {
InfiniteViewPager infiniteViewPager = (InfiniteViewPager) viewPager;
return getRealAdapterSize(infiniteViewPager);
}
PagerAdapter adapter = viewPager.getAdapter();
if (adapter instanceof InfinitePagerAdapter) {
InfinitePagerAdapter infinitePagerAdapter = (InfinitePagerAdapter) viewPager.getAdapter();
return infinitePagerAdapter.getItemCount();
}
return adapter == null ? 0 : adapter.getCount();
}
public void setTabsFromPagerAdapter(@NonNull PagerAdapter adapter) {
List<Tab> list = new ArrayList<>();
if (adapter instanceof ITabSetting) {
for (int i = 0, count = adapter.getCount(); i < count; ++i) {
list.add(((ITabSetting) adapter).getTabItem(i));
}
} else {
for (int i = 0, count = adapter.getCount(); i < count; ++i) {
list.add(new Tab(getContext()).setText(adapter.getPageTitle(i)));
}
}
mCircularTabLayoutAdapter =
new CircularTabLayoutAdapter(getContext(), new ITabSelectedListener() {
@Override
public void onTabItemClicked(int position) {
smoothScrollToPositionFromTabSelect(position);
}
});
mCircularTabLayoutAdapter.setTabData(list);
setTabViewStyle();
getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
@SuppressWarnings("deprecation")
@SuppressLint("NewApi")
@Override
public void onGlobalLayout() {
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.JELLY_BEAN) {
getViewTreeObserver().removeGlobalOnLayoutListener(this);
} else {
getViewTreeObserver().removeOnGlobalLayoutListener(this);
}
LinearLayoutManager linearLayoutManager = (LinearLayoutManager) getLayoutManager();
View targetView = linearLayoutManager.findViewByPosition(0);
if (targetView != null) {
RecyclerView.LayoutParams params =
(RecyclerView.LayoutParams) targetView.getLayoutParams();
int start = linearLayoutManager.getPaddingLeft();
int end = linearLayoutManager.getWidth() - linearLayoutManager.getPaddingRight();
int left = linearLayoutManager.getDecoratedLeft(targetView) - params.leftMargin;
int right = linearLayoutManager.getDecoratedRight(targetView) + params.rightMargin;
int offset = (start + ((end - start) / 2 - (right - left) / 2)) - left;
linearLayoutManager.scrollToPositionWithOffset(
mCircularTabLayoutAdapter.getCurrentPosition(), offset);
}
}
});
}
/**
* Add new {@link Tab}s populated from a {@link PagerAdapter}. Each tab will have it's text set
* to the value returned from {@link PagerAdapter#getPageTitle(int)}.
*
* @param adapter the adapter to populate from
*/
public void addTabsFromPagerAdapter(PagerAdapter adapter) {
for (int i = 0, count = adapter.getCount(); i < count; i++) {
addTab(newTab().setText(adapter.getPageTitle(i)));
}
}