Android viewpager屏幕向右或向左滑动?

Android viewpager屏幕向右或向左滑动?,android,Android,如何知道用户在查看寻呼机中是向右还是向左滑动屏幕 indicator.setOnPageChangeListener(new OnPageChangeListener() { @Override public void onPageSelected (int page) { //page changed } @Override public void onPageScrolled (int arg0, float arg1, i

如何知道用户在查看寻呼机中是向右还是向左滑动屏幕

indicator.setOnPageChangeListener(new OnPageChangeListener() {

    @Override
    public void onPageSelected (int page)
    {
        //page changed
    }

    @Override
    public void onPageScrolled (int arg0, float arg1, int arg2)
    {
    }

    @Override
    public void onPageScrollStateChanged (int arg0)
    {
    }
});
我使用了这个方法,我很确定onpagescrollstatechanged是告诉我们它是右还是左的,但是我们如何使用它呢

试试看:

@Override
public void onPageSelected(int arg0) {
    if(lastPage>arg0)
      {//User Move to left}
    else(lastPage<arg0) 
     {//User Move to right}
      lastPage=arg0
}
@覆盖
已选择页面上的公共无效(int arg0){
如果(最后一页>arg0)
{//用户向左移动}

else(lastPage将值单独保存在另一个变量中,并在PageScrollState上进行比较

OnPageChangeListener onPageChangeListener = new OnPageChangeListener() {

                @Override
                public void onPageSelected(int arg0) {
                    // TODO Auto-generated method stub

                }

                @Override
                public void onPageScrolled(int arg0, float arg1, int arg2) {
                    // TODO Auto-generated method stub

                }

                @Override
                public void onPageScrollStateChanged(int arg0) {
                    // TODO Auto-generated method stub
                    if(savePosition>arg0)
                    {
                        Toast.makeText(getApplicationContext(), "Swiped Right", Toast.LENGTH_SHORT).show();
                    }else
                    {
                        Toast.makeText(getApplicationContext(), "Swiped Left", Toast.LENGTH_SHORT).show();
                    }
                    savePosition = arg0;
                }
            };
  • 这是我在查看页面的onPageScrolled()方法中的解决方案。OnPageChangeListener

  • 如果您想知道用户是实时向左还是向右滚动。您可以执行以下操作:

    mViewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
            float tempPositionOffset = 0;
    
            @Override
            public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
                if (position == 0) {
                    if (tempPositionOffset < positionOffset) {
                        Log.d("eric", "scrolling left ...");
                    } else {
                        Log.d("eric", "scrolling right ...");
                    }
    
                    tempPositionOffset = positionOffset;
    
              Log.d("eric", "position " + position + "; " + " positionOffset " + positionOffset + "; " + " positionOffsetPixels " + positionOffsetPixels + ";");
                }
            }
    
            @Override
            public void onPageSelected(int position) {
    
            }
    
            @Override
            public void onPageScrollStateChanged(int state) {
    
            }
        });
    
    mViewPager.addOnPageChangeListener(新的ViewPager.OnPageChangeListener(){
    浮点tempPositionOffset=0;
    @凌驾
    已滚动页面上的公共无效(int-position、float-positionOffset、int-positionOffsetPixels){
    如果(位置==0){
    if(tempPositionOffset
    它是活动中的全局int变量。