List of usage examples for android.support.v4.view ViewPager SCROLL_STATE_DRAGGING
int SCROLL_STATE_DRAGGING
To view the source code for android.support.v4.view ViewPager SCROLL_STATE_DRAGGING.
Click Source Link
From source file:com.runmit.sweedee.view.CirclePageIndicator.java
@Override public void onPageScrollStateChanged(int state) { mScrollState = state;//from ww w .ja v a2 s . c o m switch (state) { case ViewPager.SCROLL_STATE_IDLE:// ? break; case ViewPager.SCROLL_STATE_DRAGGING:// break; case ViewPager.SCROLL_STATE_SETTLING:// break; default: break; } if (mListener != null) { mListener.onPageScrollStateChanged(state); } }
From source file:com.ayuget.redface.ui.fragment.TopicFragment.java
@Override public void onPageScrollStateChanged(int state) { // Keep track of scroll state in order to detect if scrolling has been done // manually by the user, or programatically. It allows us to disable some automatic // scrolling behavior that can be annoying (and buggy) in some corner cases if (previousViewPagerState == ViewPager.SCROLL_STATE_DRAGGING && state == ViewPager.SCROLL_STATE_SETTLING) { userScrolledViewPager = true;//w ww. ja v a2 s. com // Reset current page position because user triggered page change currentPagePosition = null; } else if (previousViewPagerState == ViewPager.SCROLL_STATE_SETTLING && state == ViewPager.SCROLL_STATE_IDLE) { userScrolledViewPager = false; } previousViewPagerState = state; }
From source file:com.github.paradam.infinitepager.InfiniteViewPager.java
/** * Initialise the InfiniteViewPager./*w w w . java2s . c o m*/ */ private void init() { /* * Set up listener to listen for the moments when the current selected page has been changed * to a page less than InfinitePageAdapter#MARGIN, or larger than * InfinitePageAdapter#getRelativeCount()+ InfinitePageAdapter#MARGIN */ super.setOnPageChangeListener(new OnPageChangeListener() { /** * The page which the {@link #pageScrollRunner} will scroll to when the thread is run.<br> * A value of -1 means no page has been set since the last time #pageScrollRunner was run. */ private int toPage = -1; /** * A Runnable that will set the Page Adapter {@link com.github.paradam.infinitepager.InfiniteViewPager#infinitePageAdapter} * to the page identified in {@link #toPage}, before then setting toPage to <code>-1</code>. */ private final Runnable pageScrollRunner = new Runnable() { public synchronized void run() { if (toPage >= 0) { /* * Switch to the real page, don't animate transition to make it * seem that the page is not changed. */ setRelativeCurrentItem(toPage, false); toPage = -1; } } }; @Override public void onPageScrollStateChanged(int state) { switch (state) { case ViewPager.SCROLL_STATE_DRAGGING: /* * User has started dragging, quickly change the page to the correct one, * this may cause the view to jump. */ case ViewPager.SCROLL_STATE_IDLE: // Animation has finished, switch now. if (toPage >= 0) { post(pageScrollRunner); } } if (mInternalPageChangeListener != null) { mInternalPageChangeListener.onPageScrollStateChanged(state); } if (mOnPageChangeListener != null) { mOnPageChangeListener.onPageScrollStateChanged(state); } } @Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { if (mInternalPageChangeListener != null) { mInternalPageChangeListener.onPageScrolled(calculateRelative(position), positionOffset, positionOffsetPixels); } if (mOnPageChangeListener != null) { mOnPageChangeListener.onPageScrolled(calculateRelative(position), positionOffset, positionOffsetPixels); } } @Override public void onPageSelected(int position) { int calcPos = calculateRelative(position); if (position - infinitePageAdapter.getMargin() != calcPos) { /* * If the given position differs from the real position calculated. * Set #toPage to the page it should be on (if position is one that is * less than InfiniteViewPager#getMargin() * or larger than (InfinitePageAdapter#getRelativeCount() + * InfinitePageAdapter#getMargin()), then store the correct page * it should change to when the animation stops to make as smooth * transition as possible. */ toPage = calcPos; } if (mInternalPageChangeListener != null) { mInternalPageChangeListener.onPageSelected(calcPos); } if (mOnPageChangeListener != null) { mOnPageChangeListener.onPageSelected(calcPos); } } }); }
From source file:io.lhyz.android.zhihu.daily.ui.main.LatestAdapter.java
@Override public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { final int type = getItemViewType(holder.getAdapterPosition()); if (type == TYPE_TOP) { final List<Top> topStories = mTopStories; final CarouselViewHolder carouselViewHolder = (CarouselViewHolder) holder; final ViewPager viewPager = carouselViewHolder.mViewPager; final TopAdapter adapter = new TopAdapter(topStories); adapter.setOnStoryItemClickListener(mOnStoryItemClickListener); viewPager.setOffscreenPageLimit(5); viewPager.setAdapter(adapter);/*ww w . j a v a 2 s .co m*/ /** * ??3s? * * ? */ final CountDownTimer timer = new CountDownTimer(3000, 3000) { @Override public void onTick(long l) { } @Override public void onFinish() { int size = mTopStories.size(); int pos = viewPager.getCurrentItem(); if (pos == size - 1) { pos = 0; } else { pos += 1; } viewPager.setCurrentItem(pos); } }; timer.start(); viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() { @Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { } @Override public void onPageSelected(int position) { } @Override public void onPageScrollStateChanged(int state) { //? if (state == ViewPager.SCROLL_STATE_DRAGGING) { timer.cancel(); } if (state == ViewPager.SCROLL_STATE_SETTLING) { timer.start(); } } }); } else if (type == TYPE_HEADER) { final HeaderViewHolder headerViewHolder = (HeaderViewHolder) holder; final Normal story = mStories.get(0); headerViewHolder.itemView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { mOnStoryItemClickListener.onNormalClick(story); } }); headerViewHolder.mHeader.setText(""); headerViewHolder.mTextView.setText(story.getTitle()); final String imageURL = story.getImages().get(0); if (imageURL != null) { headerViewHolder.mSimpleDraweeView.setImageURI(Uri.parse(imageURL)); } } else { final NormalViewHolder normalViewHolder = (NormalViewHolder) holder; final Normal story = mStories.get(holder.getAdapterPosition() - 1); normalViewHolder.itemView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { mOnStoryItemClickListener.onNormalClick(story); } }); normalViewHolder.mTextView.setText(story.getTitle()); final String imageURL = story.getImages().get(0); if (imageURL != null) { normalViewHolder.mSimpleDraweeView.setImageURI(Uri.parse(imageURL)); } } }
From source file:ooo.oxo.mr.ViewerActivity.java
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); binding = DataBindingUtil.setContentView(this, R.layout.viewer_activity); setTitle(null);/*from w w w .j a va 2 s .c om*/ binding.toolbar.setNavigationOnClickListener(v -> supportFinishAfterTransition()); binding.toolbar.inflateMenu(R.menu.viewer); binding.puller.setCallback(this); supportPostponeEnterTransition(); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { getWindow().getEnterTransition().addListener(new SimpleTransitionListener() { @Override @TargetApi(Build.VERSION_CODES.LOLLIPOP) public void onTransitionEnd(Transition transition) { getWindow().getEnterTransition().removeListener(this); fadeIn(); } }); } else { fadeIn(); } background = new ColorDrawable(Color.BLACK); binding.getRoot().setBackground(background); adapter = new Adapter(); binding.pager.setAdapter(adapter); binding.pager.setCurrentItem(getIntent().getIntExtra("index", 0)); binding.pager.addOnPageChangeListener(new ViewPager.SimpleOnPageChangeListener() { @Override public void onPageScrollStateChanged(int state) { if (state == ViewPager.SCROLL_STATE_DRAGGING) { fadeOut(); } } }); listener = new ObservableListPagerAdapterCallback(adapter); images.addOnListChangedCallback(listener); setEnterSharedElementCallback(new SharedElementCallback() { @Override public void onMapSharedElements(List<String> names, Map<String, View> sharedElements) { Image image = images.get(binding.pager.getCurrentItem()); sharedElements.clear(); sharedElements.put(String.format("%s.image", image.getObjectId()), getCurrent().getSharedElement()); } }); menuItemClicks(R.id.share).compose(bindToLifecycle()) .compose(ensurePermissions(Manifest.permission.WRITE_EXTERNAL_STORAGE)) .map(avoid -> getCurrentImage()) .doOnNext(image -> MobclickAgent.onEvent(this, "share", image.getObjectId())) .observeOn(Schedulers.io()).flatMap(this::saveIfNeeded).observeOn(AndroidSchedulers.mainThread()) .doOnNext(this::notifyMediaScanning).map(Uri::fromFile).retry().subscribe(uri -> { final Intent intent = new Intent(Intent.ACTION_SEND); intent.setType("image/jpeg"); intent.putExtra(Intent.EXTRA_STREAM, uri); startActivity(Intent.createChooser(intent, getString(R.string.share_title))); }); menuItemClicks(R.id.save).compose(bindToLifecycle()) .compose(ensurePermissions(Manifest.permission.WRITE_EXTERNAL_STORAGE)) .map(avoid -> getCurrentImage()) .doOnNext(image -> MobclickAgent.onEvent(this, "save", image.getObjectId())) .observeOn(Schedulers.io()).flatMap(this::saveIfNeeded).observeOn(AndroidSchedulers.mainThread()) .doOnNext(this::notifyMediaScanning).retry().subscribe(file -> { ToastUtil.shorts(this, R.string.save_success, file.getPath()); }); final WallpaperManager wm = WallpaperManager.getInstance(this); menuItemClicks(R.id.set_wallpaper).compose(bindToLifecycle()).map(avoid -> getCurrentImage()) .doOnNext(image -> MobclickAgent.onEvent(this, "set_wallpaper", image.getObjectId())) .observeOn(Schedulers.io()).flatMap(this::download).observeOn(AndroidSchedulers.mainThread()) .map(file -> FileProvider.getUriForFile(this, AUTHORITY_IMAGES, file)).retry().subscribe(uri -> { if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.KITKAT) { startActivity(wm.getCropAndSetWallpaperIntent(uri)); } else { try { wm.setStream(getContentResolver().openInputStream(uri)); ToastUtil.shorts(this, R.string.set_wallpaper_success); } catch (IOException e) { Log.e(TAG, "Failed to set wallpaper", e); ToastUtil.shorts(this, e.getMessage(), e); } } }); }
From source file:com.insthub.ecmobile.fragment.HomeFragment.java
@Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View mainView = inflater.inflate(R.layout.home_fragment, null); back = (ImageView) mainView.findViewById(R.id.top_view_back); back.setVisibility(View.GONE); title = (TextView) mainView.findViewById(R.id.top_view_text); Resources resource = this.getResources(); String ecmobileStr = resource.getString(R.string.ecmobile); title.setText(ecmobileStr);// w w w . j a v a 2s. c o m title_right_button = (LinearLayout) mainView.findViewById(R.id.top_right_button); title_right_button.setVisibility(View.VISIBLE); title_right_button.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { msgModel.unreadCount = 0; headUnreadTextView.setVisibility(View.GONE); Intent intent = new Intent(getActivity(), ShopNotifyActivity.class); startActivity(intent); getActivity().overridePendingTransition(R.anim.push_right_in, R.anim.push_right_out); } }); headUnreadTextView = (TextView) mainView.findViewById(R.id.head_unread_num); if (null == dataModel) { dataModel = new HomeModel(getActivity()); dataModel.fetchHotSelling(); dataModel.fetchCategoryGoods(); } if (null == MsgModel.getInstance()) { msgModel = new MsgModel(getActivity()); } else { msgModel = MsgModel.getInstance(); } msgModel.addResponseListener(this); msgModel.getUnreadMessageCount(); if (null == ConfigModel.getInstance()) { ConfigModel configModel = new ConfigModel(getActivity()); configModel.getConfig(); } dataModel.addResponseListener(this); bannerView = (FrameLayout) LayoutInflater.from(getActivity()).inflate(R.layout.banner_scroll_view, null); bannerViewPager = (ViewPager) bannerView.findViewById(R.id.banner_viewpager); LayoutParams params1 = bannerViewPager.getLayoutParams(); params1.width = getDisplayMetricsWidth(); params1.height = (int) (params1.width * 1.0 / 484 * 200); bannerViewPager.setLayoutParams(params1); bannerListView = new ArrayList<View>(); bannerPageAdapter = new Bee_PageAdapter(bannerListView); bannerViewPager.setAdapter(bannerPageAdapter); bannerViewPager.setCurrentItem(0); bannerViewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() { private int mPreviousState = ViewPager.SCROLL_STATE_IDLE; @Override public void onPageScrolled(int i, float v, int i2) { } @Override public void onPageSelected(int i) { } @Override public void onPageScrollStateChanged(int state) { // All of this is to inhibit any scrollable container from consuming our touch events as the user is changing pages if (mPreviousState == ViewPager.SCROLL_STATE_IDLE) { if (state == ViewPager.SCROLL_STATE_DRAGGING) { mTouchTarget = bannerViewPager; } } else { if (state == ViewPager.SCROLL_STATE_IDLE || state == ViewPager.SCROLL_STATE_SETTLING) { mTouchTarget = null; } } mPreviousState = state; } }); mIndicator = (PageIndicator) bannerView.findViewById(R.id.indicator); mIndicator.setViewPager(bannerViewPager); mListView = (MyListView) mainView.findViewById(R.id.home_listview); mListView.addHeaderView(bannerView); mListView.bannerView = bannerView; mListView.setPullLoadEnable(false); mListView.setPullRefreshEnable(true); mListView.setXListViewListener(this, 0); mListView.setRefreshTime(); homeSetAdapter(); ShoppingCartModel shoppingCartModel = new ShoppingCartModel(getActivity()); shoppingCartModel.addResponseListener(this); shoppingCartModel.homeCartList(); return mainView; }
From source file:com.github.rubensousa.tablayoutadapter.TabLayoutAdapter.java
@Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { // Copied from TabLayout. We need to change the icon alpha too. if (mScrollState != ViewPager.SCROLL_STATE_SETTLING || mPreviousScrollState == ViewPager.SCROLL_STATE_DRAGGING) { if (positionOffset < 0.5) { selectTabIcon(mTabLayout.getTabAt(position), true); selectTabIcon(mTabLayout.getTabAt(position + 1), false); } else {/* w w w . j a v a 2 s. c o m*/ selectTabIcon(mTabLayout.getTabAt(position), false); selectTabIcon(mTabLayout.getTabAt(position + 1), true); } } }
From source file:com.jiang.android.indicator.TabPageIndicator.java
@Override public void onPageScrollStateChanged(int arg0) { if (arg0 == ViewPager.SCROLL_STATE_DRAGGING) { oldSelected = mViewPager.getCurrentItem(); }/*from www . ja va2 s.co m*/ if (mListener != null) { mListener.onPageScrollStateChanged(arg0); } }
From source file:com.utils.app.IntroActivity.java
@Override public void onPageScrollStateChanged(int state) { if (state == ViewPager.SCROLL_STATE_DRAGGING) { } else if (state == ViewPager.SCROLL_STATE_IDLE) { if (mScroller.isMoveDisable()) { atEndButScrolled();/* ww w .j av a2 s . co m*/ } } else if (state == ViewPager.SCROLL_STATE_SETTLING) { } }
From source file:com.github.omadahealth.slidepager.lib.SlidePager.java
/** * Sets the {@link #setOnPageChangeListener(OnPageChangeListener)} for this class. If the user wants * to link their own {@link android.support.v4.view.ViewPager.OnPageChangeListener} then they should * use {@link #setOnPageChangeListener(OnPageChangeListener)}; where we set {@link #mUserPageListener} *///from www. j a va 2 s . c om private void setSlidePager() { super.setOnPageChangeListener(new OnPageChangeListener() { @Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { if (mUserPageListener != null) { mUserPageListener.onPageScrolled(position, positionOffset, positionOffsetPixels); } mPageIndex = position; } @Override public void onPageSelected(int position) { if (mUserPageListener != null) { mUserPageListener.onPageSelected(position); } resetPage(position); } @Override public void onPageScrollStateChanged(int state) { //page scrolled with room: drag, settle, idle //page scrolled when no room: drag, idle switch (state) { case ViewPager.SCROLL_STATE_DRAGGING: animateStreaks(getCurrentItem(), false); break; case ViewPager.SCROLL_STATE_SETTLING: break; case ViewPager.SCROLL_STATE_IDLE://animate here onPageSelected not called when we hit a wall Log.e(TAG, "SCROLL_STATE_IDLE for page index : " + getCurrentItem() + " mPageIndex : " + mPageIndex); if (getCurrentItem() == mPageIndex) { animatePage(getCurrentItem()); } break; } if (mUserPageListener != null) { mUserPageListener.onPageScrollStateChanged(state); } } }); }