android-如何通过手指在viewpager上滑动来禁用分页,但允许onClickListener

android-如何通过手指在viewpager上滑动来禁用分页,但允许onClickListener,android,android-viewpager,Android,Android Viewpager,这是我的viewPager代码。我想禁用用户在viewPager之间滑动,但可以单击它 这是我的密码 vp= (ViewPager)header.findViewById(R.id.pager); vp.setOnTouchListener(new OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { re

这是我的viewPager代码。我想禁用用户在viewPager之间滑动,但可以单击它

这是我的密码

        vp= (ViewPager)header.findViewById(R.id.pager); 
    vp.setOnTouchListener(new OnTouchListener() {
        @Override
        public boolean onTouch(View v, MotionEvent event) {
            return true;
        }
    });

    vp.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent in=new Intent (FistActiivty.this,List.class);
            in.putExtra("for","latest");
            startActivity(in);              
        }
    });
它会禁用用户刷卡,但onclicklistener在此之后不工作


如何使onclicklistener再次工作,但禁用用户刷卡

创建自定义viewpager类:

public class CustomViewPager extends ViewPager {

private boolean enabled;

public CustomViewPager(Context context, AttributeSet attrs) {
    super(context, attrs);
    this.enabled = true;
}

@Override
public boolean onTouchEvent(MotionEvent event) {
    if (this.enabled) {
    return super.onTouchEvent(event);
}

return false;
}

@Override
public boolean onInterceptTouchEvent(MotionEvent event) {
    if (this.enabled) {
        return super.onInterceptTouchEvent(event);
    }

    return false;
}

public void setPagingEnabled(boolean enabled) {
    this.enabled = enabled;
}
}
并在xml文件中使用它:

<mypackage.CustomViewPager 
android:id="@+id/myViewPager" 
android:layout_height="match_parent" 
android:layout_width="match_parent" />

我正在使用这个。您需要调用
viewPager.setPaginEnabled(false)


您需要创建像这样扩展ViewPager的自定义类

MyViewPager.java

public class MyViewPager extends ViewPager 
{
    public MyViewPager(Context context) 
    {
        super(context);
    }

    public MyViewPager(Context context, AttributeSet attrs) {
        super(context, attrs);
    }

    @Override
    public boolean onInterceptTouchEvent(MotionEvent arg0) {
        // Never allow swiping to switch between pages
        return false;
    }

    @Override
    public boolean onTouchEvent(MotionEvent event) {
        // Never allow swiping to switch between pages
        return false;
    }

}
其次,您需要在定义了android.support.v4.view.ViewPager的xml中做一个更改

像这样

<YourProjectPackageName.MyViewPager
        android:id="@+id/viewPager"
        android:layout_width="fill_parent"
        android:layout_height="match_parent" />

<YourProjectPackageName.MyViewPager
        android:id="@+id/viewPager"
        android:layout_width="fill_parent"
        android:layout_height="match_parent" />