Fel*_*sso 6 tabs android scroll touch android-viewpager
我试图禁止我的ViewPager在标签之间滚动.我有以下情况:
public class MyClass extends ViewPager implements ViewPager.OnPageChangeListener, OnTouchListener {
public MyClass() {
setOnTouchListener(this);
}
@Override
public void onPageScrollStateChanged(int state) {
Log.d("Testing", TAG + " onPageScrollStateChanged");
}
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
Log.d("Testing", TAG + " onPageScrolled");
}
@Override
public void onPageSelected(int position) {
Log.d("Testing", TAG + " onPageSelected");
}
@Override
public boolean onInterceptTouchEvent(MotionEvent event) {
Log.d("Testing", "intercept");
return false;
}
@Override
public boolean onTouch(View v, MotionEvent event) {
Log.d("Testing", "touch2");
return false;
}
}
Run Code Online (Sandbox Code Playgroud)
我通常从onPageScrolled和onPageScrollStateChanged获取日志,但是我没有来自onInterceptTouchEvent和onTouch的日志.我究竟做错了什么?
ant*_*omo 12
这就是我处理这个问题的方法(我的全班):
public class SelectiveViewPager extends ViewPager {
private boolean paging = true;
public SelectiveViewPager(Context context) {
super(context);
}
public SelectiveViewPager(Context context, AttributeSet attributeSet){
super(context, attributeSet);
}
@Override
public boolean onInterceptTouchEvent(MotionEvent e) {
if (paging) {
return super.onInterceptTouchEvent(e);
}
return false;
}
public void setPaging(boolean p){ paging = p; }
}
Run Code Online (Sandbox Code Playgroud)
paging
如果需要,布尔值可让您选择打开和关闭它.如果你不需要,只是return false
.如果你没有做任何特别的事情onTouch
,你不需要覆盖它.
归档时间: |
|
查看次数: |
18799 次 |
最近记录: |