this questionという回答と同様のものを使用して、ユーザーが特定のアイテムをスワイプしたときのViewPagerスワイプアクションを無効にしようとしました。問題のビューはMPAndroidChartライブラリのスクロール可能なチャートですので、当然ビューポケベルがチャートのスクロールを妨げないようにしたいと思います。特定のビューをタッチ/ドラッグするときにビューページを無効にする
私が抱えている問題は、onTouchListenerが必要なビューで呼び出される前に、ViewPagerに「onInterceptTouch」が呼び出されることが多いということです。ビューは/押されていない押されたときに、このコードセグメントで
、Iは記録だ:このコードセグメントで
private long lastDown;
private long lastUp;
...
public void foo(){
barChart.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
System.out.println("AAA");
if(event.getAction() == MotionEvent.ACTION_DOWN){
lastDown = System.currentTimeMillis();
}else if(event.getAction() == MotionEvent.ACTION_UP){
lastUp = System.currentTimeMillis();
}
return false;
}
});
}
ビューが選択されている場合、私が決定:
public boolean isGraphTouched(){
return lastDown > lastUp;
}
このコードセグメントでは、onInterceptTouchEventメソッドをオーバーライドしています。
@Override
public boolean onInterceptTouchEvent(MotionEvent ev) {
System.out.println("BBB");
return isGraphSelected() ? super.onInterceptTouchEvent(ev) : false;
}
プリントラインのTEは、onInterceptTouchEvent方法は
私はこれを歩き回るの考えることができる唯一の方法は、グラフは、運動の座標に存在するかどうかを確認する方法を作ることです...の前に呼ばれていますイベント(もしこれが可能なのかどうかはわかりませんが)を使って、ページャがスワイプ可能かどうかを判断してください。