我正在尝试使用ViewFlipper,并使其像主屏幕一样移动(布局会随着手指移动而移动)。请查看此处有一个示例。我想要在只包含两个子元素的ViewFlipper中实现这一点,因此对于用户移动手指的方向,当前视图的相反视图应该显示在当前视图的两侧。这段代码可以正常工作,但每次只能沿一个方向移动。这是在onTouchEvent中实现的。
无论我把底部两行中的哪一行放在最后,那个方向就能正确工作,而另一个方向则不能。
这是我设置leftView和rightView的方法:
case MotionEvent.ACTION_MOVE:
leftView.setVisibility(View.VISIBLE);
rightView.setVisibility(View.VISIBLE);
// move the current view to the left or right.
currentView.layout((int) (touchEvent.getX() - oldTouchValue),
currentView.getTop(),
(int) (touchEvent.getX() - oldTouchValue) + 320,
currentView.getBottom());
// place this view just left of the currentView
leftView.layout(currentView.getLeft() - 320, leftView.getTop(),
currentView.getLeft(), leftView.getBottom());
// place this view just right of the currentView
rightView.layout(currentView.getRight(), rightView.getTop(),
currentView.getRight() + 320, rightView.getBottom());
无论我把底部两行中的哪一行放在最后,那个方向就能正确工作,而另一个方向则不能。
这是我设置leftView和rightView的方法:
final View currentView = myFlipper.getCurrentView();
final View leftView, rightView;
if (currentView == meView) {
Log.d("current layout: ", "me");
leftView = youView;
rightView = youView;
} else if (currentView == youView) {
Log.d("current layout: ", "you");
leftView = meView;
rightView = meView;
} else {
leftView = null;
rightView = null;
}
是否可以设置使当前视图的两侧显示相同的视图?