@Override public int getCurrentItem() { return mAdapter != null ? mAdapter.toRealPosition(super.getCurrentItem()) : 0; }
@Override protected void onAttachedToWindow() { super.onAttachedToWindow(); if (mViewPager != null) { scrollToTab(mViewPager.getCurrentItem(), 0); } }
@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); }
@Override protected void onAttachedToWindow() { super.onAttachedToWindow(); if (mViewPager != null) { scrollToTab(mViewPager.getCurrentItem(), 0); } }
void toggleShowExtraKeys() { final ViewPager viewPager = findViewById(R.id.viewpager); final boolean showNow = mSettings.toggleShowExtraKeys(TermuxActivity.this); viewPager.setVisibility(showNow ? View.VISIBLE : View.GONE); if (showNow && viewPager.getCurrentItem() == 1) { // Focus the text input view if just revealed. findViewById(R.id.text_input).requestFocus(); } }
public void setViewPager(@Nullable ViewPager viewPager) { mViewpager = viewPager; if (mViewpager != null && mViewpager.getAdapter() != null) { mLastPosition = -1; createIndicators(); mViewpager.removeOnPageChangeListener(mInternalPageChangeListener); mViewpager.addOnPageChangeListener(mInternalPageChangeListener); mInternalPageChangeListener.onPageSelected(mViewpager.getCurrentItem()); } }
if (i == mViewPager.getCurrentItem()) { tabView.setSelected(true);
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 onRequestView(@NonNull ID id) { // Requesting ViewPager layout if it was in 'gone' state if (viewPager.getVisibility() == View.GONE) { viewPager.setVisibility(View.INVISIBLE); } // Trying to find view for currently shown page. // If it is not a selected page then we should scroll to it at first. int position = tracker.getPositionById(id); if (position == IntoTracker.NO_POSITION) { return; // Nothing we can do } if (viewPager.getCurrentItem() == position) { applyCurrentPage(); } else { viewPager.setCurrentItem(position, false); } }
@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 void setupWithViewPager(ViewPager viewPager) { if (viewPager == null) { return; } mViewPager = viewPager; if (mPageChangeListener != null) { mViewPager.removeOnPageChangeListener(mPageChangeListener); } else { mPageChangeListener = new ViewPagerPageChangeListener(); } if (mNavigationController != null) { int n = mViewPager.getCurrentItem(); if (mNavigationController.getSelected() != n) { mNavigationController.setSelect(n); } mViewPager.addOnPageChangeListener(mPageChangeListener); } }
/** * Saves current screen state: whether we are in a full image mode or not, as well as current * grid position. So that we can restore UI on configuration change. */ private void saveScreenState() { clearScreenState(); savedPhotoCount = gridAdapter.getCount(); savedPagerPosition = listAnimator.isLeaving() || pagerAdapter.getCount() == 0 ? NO_POSITION : views.pager.getCurrentItem(); if (views.grid.getChildCount() > 0) { View child = views.grid.getChildAt(0); savedGridPosition = views.grid.getChildAdapterPosition(child); savedGridPositionFromTop = child.getTop() - Views.getMarginParams(child).topMargin - views.grid.getPaddingTop(); } }
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"); } }
/** * Photos loading results callback. */ @Result(FlickrApi.LOAD_IMAGES_EVENT) private void onPhotosLoaded(List<Photo> photos, boolean hasMore) { // RecyclerView will continue scrolling when new items are added, we need to stop it. // Seems like this buggy behavior was introduced in support library v26.0.x final boolean onBottom = views.grid.findViewHolderForAdapterPosition(gridAdapter.getCount() - 1) != null; if (onBottom) { views.grid.stopScroll(); } // Setting new photos list gridAdapter.setPhotos(photos, hasMore); pagerAdapter.setPhotos(photos); gridAdapter.onNextItemsLoaded(); // Ensure listener called for 0 position pagerListener.onPageSelected(views.pager.getCurrentItem()); // Restoring saved state if (savedPagerPosition != NO_POSITION && savedPagerPosition < photos.size()) { pagerAdapter.setActivated(true); listAnimator.enter(savedPagerPosition, false); } if (savedGridPosition != NO_POSITION && savedGridPosition < photos.size()) { ((GridLayoutManager) views.grid.getLayoutManager()) .scrollToPositionWithOffset(savedGridPosition, savedGridPositionFromTop); } clearScreenState(); }
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); } } }
public void onPrepareOptionsMenu(Menu menu) { int pageNum = mViewPager.getCurrentItem(); if (pageNum == 0) { menu.findItem(R.id.source_button).setVisible(true); } else { menu.findItem(R.id.source_button).setVisible(false); } getActivity().invalidateOptionsMenu(); }
public void onPrepareOptionsMenu(Menu menu) { int pageNum = mViewPager.getCurrentItem(); if (pageNum == 0) { menu.findItem(R.id.duckConvertAttack).setVisible(true); } else { menu.findItem(R.id.duckConvertAttack).setVisible(false); } getActivity().invalidateOptionsMenu(); }
@Override public void onBackPressed() { if (hasPreviousPage()) { mViewPager.setCurrentItem(mViewPager.getCurrentItem() - 1); return; } super.onBackPressed(); } }
@Override public NdefRecord createNfcAppData() { if (adapter.getCount() == 0) { return null; } Event event = adapter.getEvent(pager.getCurrentItem()); if (event == null) { return null; } return NfcUtils.createEventAppData(this, event); }
@Override protected void onActionSave() { if (mPaymentFlowPagerAdapter.getPageAt( mViewPager.getCurrentItem()).equals(PaymentFlowPagerEnum.SHIPPING_INFO)) { onShippingInfoSubmitted(); } else { onShippingMethodSave(); } }