public int getRealCount() { return mAdapter.getCount(); }
@Override public void onPageSelected(int position) { if (mViewpager.getAdapter() == null || mViewpager.getAdapter().getCount() <= 0) { return; } internalPageSelected(position); mLastPosition = position; }
final View.OnClickListener tabClickListener = new TabClickListener(); for (int i = 0; i < adapter.getCount(); i++) { View tabView = null; TextView tabTitleView = null;
private void initTabs() { content.removeAllViews(); if (viewPager == null) return; final PagerAdapter adapter = viewPager.getAdapter(); if (viewPager.getAdapter() == null) return; if (tabBuilder == null) { tabBuilder = position -> { View tab = inflate(getContext(), R.layout.carbon_tab, null); ((TextView) tab.findViewById(R.id.carbon_tabText)).setText(getViewPager().getAdapter().getPageTitle(position).toString().toUpperCase()); return tab; }; } for (int i = 0; i < adapter.getCount(); i++) { View tab = tabBuilder.getView(i); content.addView(tab, new LinearLayout.LayoutParams(0, ViewGroup.LayoutParams.MATCH_PARENT, 1f)); tab.setSelected(i == 0); final int finalI = i; tab.setOnClickListener(__ -> viewPager.setCurrentItem(finalI)); } }
private void populateTabStrip() { final PagerAdapter adapter = mViewPager.getAdapter(); final View.OnClickListener tabClickListener = new TabClickListener(); for (int i = 0; i < adapter.getCount(); i++) { View tabView = null; TextView tabTitleView = null; if (mTabViewLayoutId != 0) { // If there is a custom tab view layout id set, try and inflate it tabView = LayoutInflater.from(getContext()).inflate(mTabViewLayoutId, mTabStrip, false); tabTitleView = (TextView) tabView.findViewById(mTabViewTextViewId); } if (tabView == null) { tabView = createDefaultTabView(getContext()); } if (tabTitleView == null && TextView.class.isInstance(tabView)) { tabTitleView = (TextView) tabView; } tabTitleView.setText(adapter.getPageTitle(i)); tabView.setOnClickListener(tabClickListener); mTabStrip.addView(tabView); } }
private void createIndicators() { removeAllViews(); PagerAdapter adapter = mViewpager.getAdapter(); int count; if (adapter == null || (count = adapter.getCount()) <= 0) { return; } createIndicators(count, mViewpager.getCurrentItem()); }
@Override public void onChanged() { super.onChanged(); if (mViewpager == null) { return; } PagerAdapter adapter = mViewpager.getAdapter(); int newCount = adapter != null ? adapter.getCount() : 0; int currentCount = getChildCount(); if (newCount == currentCount) { // No change return; } else if (mLastPosition < newCount) { mLastPosition = mViewpager.getCurrentItem(); } else { mLastPosition = -1; } createIndicators(); } };
@Override public boolean onKeyDown(int code, KeyEvent event) { if (code == KeyEvent.KEYCODE_ENTER || code == KeyEvent.KEYCODE_BUTTON_A || code == KeyEvent.KEYCODE_DPAD_CENTER) { ViewPager vp = this.findViewById(R.id.view_pager); if (vp.getCurrentItem() == vp.getAdapter().getCount() - 1) { onDonePressed(fragments.get(vp.getCurrentItem())); } else { vp.setCurrentItem(vp.getCurrentItem() + 1); } return false; } return super.onKeyDown(code, event); }
int pages; if (viewPager != null && viewPager.getAdapter() != null) { pages = viewPager.getAdapter().getCount(); } else { pages = 5;
private int getScrollRange() { int scrollRange = 0; if (getChildCount() == 0) { return getWidth(); } if (getChildCount() > 0 && getAdapter() != null) { if (getCurrentItem() == getAdapter().getCount() - 1) { View child = getChildAt(getChildCount() - 1); scrollRange = Math.max(0, child.getRight() - (getWidth() - getPaddingRight() - getPaddingLeft())); } else { scrollRange = Integer.MAX_VALUE; } } return scrollRange; }
private void applyCurrentPage() { final ID id = getAnimator().getRequestedId(); if (id == null) { return; } if (viewPager.getAdapter() == null || viewPager.getAdapter().getCount() == 0) { return; } final int position = tracker.getPositionById(id); if (position == IntoTracker.NO_POSITION) { switchToCurrentPage(); return; } if (position != viewPager.getCurrentItem()) { return; } final View view = tracker.getViewById(id); // View may be null if (view instanceof AnimatorView) { getAnimator().setToView(id, (AnimatorView) view); } else if (view != null) { throw new IllegalArgumentException("View for " + id + " should be AnimatorView"); } }
private boolean canScroll() { return (mAdapter != null) && (mAdapter.getCount() > 1); } }
private void switchToCurrentPage() { if (viewPager.getAdapter() == null || viewPager.getAdapter().getCount() == 0) { return; } final ID id = getAnimator().getRequestedId(); final ID currentId = tracker.getIdByPosition(viewPager.getCurrentItem()); // If user scrolled to new page we should silently switch views if (id != null && currentId != null && !id.equals(currentId)) { // Saving current state AnimatorView toView = getAnimator().getToView(); ViewPositionAnimator toAnimator = toView == null ? null : toView.getPositionAnimator(); boolean isLeaving = toAnimator != null && toAnimator.isLeaving(); float position = toAnimator == null ? 0f : toAnimator.getPosition(); boolean isAnimating = toAnimator != null && toAnimator.isAnimating(); // Switching to new page, preventing exit of previous page skipExit(); getAnimator().enter(currentId, false); // If exit animation was in place we should continue it if (isLeaving && position > 0f) { getAnimator().exit(isAnimating); } } }
boolean pageRight() { if (mAdapter != null && mCurItem < (mAdapter.getCount() - 1)) { setCurrentItem(mCurItem + 1, true); return true; } return false; }
boolean pageDown() { if (mAdapter != null && mCurItem < (mAdapter.getCount() - 1)) { setCurrentItem(mCurItem + 1, true); return true; } return false; }
void dataSetChanged() { final int adapterCount = mAdapter.getCount(); mExpectedAdapterCount = adapterCount; boolean needPopulate = mItems.size() < mOffscreenPageLimit * 2 + 1 &&
@Override public void onInitializeAccessibilityEvent(View host, AccessibilityEvent event) { super.onInitializeAccessibilityEvent(host, event); event.setClassName(DirectionalViewpager.class.getName()); AccessibilityRecordCompat recordCompat = null; if (isHorizontal()) { recordCompat = AccessibilityEventCompat.asRecord(event); } else { recordCompat = AccessibilityRecordCompat.obtain(); } recordCompat.setScrollable(canScroll()); if (event.getEventType() == AccessibilityEventCompat.TYPE_VIEW_SCROLLED && mAdapter != null) { recordCompat.setItemCount(mAdapter.getCount()); recordCompat.setFromIndex(mCurItem); recordCompat.setToIndex(mCurItem); } }
final boolean wasFirstLayout = mFirstLayout; mFirstLayout = true; mExpectedAdapterCount = mAdapter.getCount(); if (mRestoredCurItem >= 0) { mAdapter.restoreState(mRestoredAdapterState, mRestoredClassLoader);
if (overScrollMode == ViewCompat.OVER_SCROLL_ALWAYS || (overScrollMode == ViewCompat.OVER_SCROLL_IF_CONTENT_SCROLLS && mAdapter != null && mAdapter.getCount() > 1)) { if (isHorizontal()) { if (!mLeftEdge.isFinished()) {