Example usage for android.support.v4.view ViewPager SCROLL_STATE_DRAGGING

List of usage examples for android.support.v4.view ViewPager SCROLL_STATE_DRAGGING

Introduction

In this page you can find the example usage for android.support.v4.view ViewPager SCROLL_STATE_DRAGGING.

Prototype

int SCROLL_STATE_DRAGGING

To view the source code for android.support.v4.view ViewPager SCROLL_STATE_DRAGGING.

Click Source Link

Document

Indicates that the pager is currently being dragged by the user.

Usage

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);
            }
        }
    });
}