Перевернуть представление галереи с помощью setSelection(position)
Я создал две кнопки "Влево" и "Вправо", чтобы изменить элемент галереи, используя setSelection (метод position). Я сталкиваюсь с проблемой, что, когда я переворачиваю галерею влево или вправо, она показывает анимацию / эффект изменения элемента. Но когда я меняю элемент с помощью метода setSelection, анимация не отображается. я пытался setSelect(pos,animate)
метод, но без результата.
Также пробовал использовать:
Animation inFromRight = AnimationUtils.loadAnimation(activity, R.anim.righttoleft);
gallery.startAnimation(inFromRight);
gallery.setSelection(currPos);
Эта анимация не та, которая возникает при перевороте.
2 ответа
Вы можете эмулировать событие нажатия клавиши:
gallery.onKeyDown(KeyEvent.KEYCODE_DPAD_RIGHT, null);
gallery.onKeyDown(KeyEvent.KEYCODE_DPAD_LEFT, null);
без использования какой-либо анимации.
Просто поместите эти две функции в кнопки "Влево" и "Вправо" соответственно.:)
Реализация setSelection из андроид источников:
public void setSelection(int position, boolean animate) {
// Animate only if requested position is already on screen somewhere
boolean shouldAnimate = animate && mFirstPosition <= position &&
position <= mFirstPosition + getChildCount() - 1;
setSelectionInt(position, shouldAnimate);
}
Виден ли элемент, на котором вы анимируете, на экране? Кстати, галерея глючит и устарела в последнее время