0
我使用android.support.v4.app.FragmentActivity
創建一個應用程序與多片段/面板,可以通過拖動/滑動應用程序的不同部分之間訪問。 在我的片段之一,我有一個可縮放視圖,我的問題是如果我在可縮放視圖上,我將阻止用於拖/劃到其他片段。Android,FragmentActivity和防止滑動
我試圖破解android.support.v4.view.ViewPager
從Touch事件中獲取操作,但無法工作。
我有嘗試所有這種情況下,但無法正常工作: (所有的代碼是子類的AA部分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);
}
}
這是工作,我不知道,而我儘量不這樣這項工作。 –
如何在擴展FragmentActivity的類中使用它? – RicNjesh
你可以使用它作爲普通的ViewPager,沒有任何限制:你可以通過調用構造函數或者像佈局中聲明它來創建它,比如「your.packagename.MyViewPager」... –