В этом посте: Android: ScrollView в флиппере
Было предложено установить onTouchnListener для ScrollView, который является частью дочернего элемента ViewFlipper.
Я сделал это и также использовал ту же логику:
public class MainActivity extends Activity implements OnGestureListener {
// ...
@Override
protected void onCreate(Bundle savedInstanceState) {
// ...
this.gestureDetector = new GestureDetector(this);
// ..
createViews();
}
private void createViews() {
LayoutInflater inflater = (LayoutInflater) context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
displayView = inflater.inflate(R.layout.viewflippercontent, null);
ScrollView scrollView = (ScrollView) displayView
.findViewById(R.id.scrollview);
scrollView.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
if (gestureDetector.onTouchEvent(event)) {
Log.d("ScrollViewOnTouchListener", "true");
return true;
} else {
Log.d("ScrollViewOnTouchListener", "false");
return false;
}
}
});
// ..
}
@Override
public boolean onTouchEvent(MotionEvent me) {
Log.d("onTouchEvent", "onTouchEvent");
return gestureDetector.onTouchEvent(me);
}
public boolean onDown(MotionEvent e) {
return true;
}
public void onLongPress(MotionEvent e) {
}
public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX,
float distanceY) {
Log.d("onScroll", "onScroll");
return false;
}
public void onShowPress(MotionEvent e) {
}
public boolean onSingleTapUp(MotionEvent e) {
return true;
}
}
Когда я прокручиваю дочерний элемент ViewFlipper, я получаю в LogCat следующее:
08-07 21: 57: 14.581: DEBUG / ScrollViewOnTouchListener (4586): true
08-07 21: 57: 14.591: DEBUG / ScrollViewOnTouchListener (4586): false
08-07 21: 57: 14.622: DEBUG / ScrollViewOnTouchListener (4586): false
08-07 21: 57: 14.646: DEBUG / onScroll (4586): onScroll
08-07 21:57: 14.646: DEBUG / ScrollViewOnTouchListener (4586): false
08-07 21: 57: 14.671: DEBUG / onScroll (4586): onScroll
08-07 21: 57: 14.671: DEBUG/ ScrollViewOnTouchListener (4586): false
08-07 21: 57: 14.704: DEBUG / onScroll (4586): onScroll
08-07 21: 57: 14.704: DEBUG / ScrollViewOnTouchListener (4586): false
08-07 21: 57: 14.731: DEBUG / onScroll (4586): onScroll
08-07 21: 57: 14.731: DEBUG / ScrollViewOnTouchListener (4586): false
08-07 21: 57: 14.761: DEBUG / onScroll (4586): onScroll
08-07 21: 57: 14.761: DEBUG / ScrollViewOnTouchListener (4586): false
08-07 21: 57: 14,791: DEBUG / onScroll (4586): onScroll
08-07 21: 57: 14.791: DEBUG / ScrollViewOnTouchListener (4586): false
08-07 21:57: 14.791: DEBUG / ScrollViewOnTouchListener (4586): true
Однако прокрутка не выполняется, хотя это должно быть возможным, поскольку содержимое больше экрана.
Что я делаюнеправильно?