我使用android.support.v4.app.FragmentActivity创建一个具有多个片段/面板的应用程序,可以通过在应用程序的不同部分之间拖动/滑动来访问它。在我的一个片段中,我有一个可缩放的视图,我的问题是,如果我在可缩放视图上,我将阻止使用拖动/滑动到另一个片段。
我已经尝试黑进android.support.v4.view.ViewPager,以便从on Touch事件中获取操作,但不是工作。
我已经尝试了所有这种情况,但没有工作:(所有代码都是android.support.v4.view.ViewPager的子类的一部分)
案例1:
// Not working
@Override
protected void onPageScrolled(int position, float offset, int offsetPixels) {
if (isPreventDrag()) {
super.onPageScrolled(position, 1, 0);
} else {
super.onPageScrolled(position, offset, offsetPixels);
}
}案例2:
// Work but stop all event include the event to the target image view.
@Override
public boolean onInterceptTouchEvent(MotionEvent ev) {
switch (ev.getAction()) {
case MotionEvent.ACTION_DOWN:
lastX = ev.getX(); // float
lockScroll = false;
return super.onInterceptTouchEvent(ev);
case MotionEvent.ACTION_MOVE:
this.lockScroll = this.isPreventDrag();
break;
}
if (lockScroll) {
ev.setLocation(lastX, ev.getY());
return super.onInterceptTouchEvent(ev);
} else {
return super.onInterceptTouchEvent(ev);
}
}案例3:
// Work good, but by some unknown error I can drag the screen
// some pixels before this stop the event.
@Override
public boolean onTouchEvent(MotionEvent ev) {
if (this.isPreventDrag()) {
return true;
} else {
return super.onTouchEvent(ev);
}
}我想要一个简单的方法来停用,停止或停用,如果使用是允许切换到其他片段。
这是我的工作代码,我不知道我以前犯了什么错误。
// This work for me,
@Override
public boolean onInterceptTouchEvent(MotionEvent ev) {
if (this.isPreventDrag()) {
return false;
} else {
return super.onInterceptTouchEvent(ev);
}
}发布于 2012-10-16 23:54:22
我使用这个ViewPager类来控制viewpager的“滑动能力”:
public class MyViewPager extends ViewPager {
public MyViewPager(Context context) {
super(context);
}
public MyViewPager(Context context, AttributeSet attrs) {
super(context, attrs);
}
private boolean blockSwipe = false;
public void setBlockSwipe(boolean blockSwipe) {
this.blockSwipe = blockSwipe;
}
@Override
public boolean onInterceptTouchEvent(MotionEvent arg0) {
if (blockSwipe)
return false;
else
return super.onInterceptTouchEvent(arg0);
}
}https://stackoverflow.com/questions/12918581
复制相似问题