Перевернуть представление галереи с помощью 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);
}

Виден ли элемент, на котором вы анимируете, на экране? Кстати, галерея глючит и устарела в последнее время

Другие вопросы по тегам