不可滑动的ViewPager

来源:互联网 发布:网络运维 编辑:程序博客网 时间:2024/05/23 16:54
mport com.uninew.util.LogTool;

import android.content.Context;
import android.support.v4.view.ViewPager;
import android.util.AttributeSet;
import android.view.KeyEvent;
import android.view.MotionEvent;

public class NoScrollViewPager extends ViewPager {
//禁止滑动:1.手动滑动翻页 2.物理按键/上一页下一页导致的翻页
private boolean noScroll = true;

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

public NoScrollViewPager(Context context) {
super(context);
}

public void setNoScroll(boolean noScroll) {
this.noScroll = noScroll;
}

@Override
public void scrollTo(int x, int y) {
super.scrollTo(x, y);
}

@Override
public boolean onTouchEvent(MotionEvent arg0) {
if (noScroll)
return false;
else
return super.onTouchEvent(arg0);
}

@Override
public boolean onInterceptTouchEvent(MotionEvent arg0) {
if (noScroll)
return false;
else
return super.onInterceptTouchEvent(arg0);
}

@Override
public void setCurrentItem(int item, boolean smoothScroll) {
super.setCurrentItem(item, smoothScroll);
LogTool.i("-->ViewPager setCurrentItme: " + item + " smoothScroll: "
+ smoothScroll);
}

@Override
public void setCurrentItem(int item) {
LogTool.i("-->ViewPager setCurrentItme: " + item);
super.setCurrentItem(item);
}

@Override
public boolean executeKeyEvent(KeyEvent event) {
// TODO Auto-generated method stub
// 物理按键上一页.下一页 导致的翻页-->禁止
if (event.getAction() == KeyEvent.ACTION_DOWN
|| event.getAction() == KeyEvent.ACTION_UP) {
if (event.getKeyCode() == KeyEvent.KEYCODE_DPAD_LEFT
|| event.getKeyCode() == KeyEvent.KEYCODE_DPAD_RIGHT) {
return false;
}
}
return super.executeKeyEvent(event);
}

@Override
public boolean arrowScroll(int arg0) {
// TODO Auto-generated method stub
return super.arrowScroll(arg0);
}
}
//参考
原创粉丝点击