Я пытаюсь использовать ViewFlipper и заставить его работать как домашний экран (макет будет двигаться пальцем). Проверьте это для примера. Я хочу сделать это с помощью ViewFlipper, который содержит только двух дочерних элементов, поэтому противоположное представление должно отображаться с каждой стороны текущего представления в зависимости от того, каким образом пользователь перемещает палец. Этот код работает, но только для 1 направления одновременно. Это в onTouchEvent.
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;
}
Будет ли возможно настроить его так, чтобы с обеих сторон текущего вида отображался один и тот же вид?