2012-01-26 9 views
1

У меня есть зеркало и две кнопки «следующая» и «предыдущая» за пределами viewflipper. Я хочу, чтобы viewflipper отображал следующий фон при нажатии «Следующий» и предыдущий фон при нажатии «предыдущий». Как я могу это сделать?viewflipper flipping

+0

просто взгляните на мой ответ. –

+0

См Дублировать ответ Возможное по ссылке ниже: [http://stackoverflow.com/questions/5563749/android-viewflipper-not-flipping/5920503#5920503][1] [1] : http://stackoverflow.com/questions/5563749/android-viewflipper-not-flipping/5920503#5920503 –

+0

См. «Положительный повторяющийся ответ» по ссылке: [http: // stackoverflow.ком/вопросы/5563749/Android-viewflipper-не листать/5920503 # 5920503] [1] [1]: http://stackoverflow.com/questions/5563749/android-viewflipper-not-flipping/5920503 # 5920503 –

ответ

5

Существует два метода для достижения ваших требований.

1. Использование showPrevious и showNext методы ViewFlipper класса. Одна вещь, которую вы должны знать об этих методах, заключается в непрерывном вызове любого метода, он начнет показывать его детям в порядке возрастания для showNext и по убыванию для showPrevious.

Пример: У просмотра флиппера есть 4 ребенка, скажем 0, 1, 2, 3. Первоначально он отображает первый элемент, то есть дочерний 0. Теперь, если вы вызываете showNext 6 раз непрерывно, он начинает отображать 1, 2, 3, 0 , 1, 2. Итак, наконец, он отобразит ребенка 2. Такая же процедура в порядке убывания для shoePrevious также.

2. Использование setDisplayedChild метод для отображения конкретный ребенок включен в ViewFlipper.

Пример: Вид плавник может, как показано ниже в файле макета XML

<ViewFlipper android:id="@+id/flipper" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" > 
    <include android:id="@+id/first" layout="@layout/first_view" /> 
    <include android:id="@+id/second" layout="@layout/second_view" /> 
</ViewFlipper> 

Для отображения первого ребенка вы можете использовать setDisplayedChild двумя способами.

звонок setDisplayedChild(R.id.first); или setDisplayedChild(0); означает, что вы можете использовать Id ребенка в ViewFlipper или положение ребенка в ViewFlipper.

Соответственно, в зависимости от фактических требований, какой метод подходит.

Надеюсь, вы это поняли.

2

По просмотруFlipper.showPrevious() и viewFlipper.showNext() вы можете это сделать.

1

вам нужно сделать следующее:

nextButton.setOnClickListener(new OnClickListener() { 

     @Override 
     public void onClick(View arg0) { 

      viewFlipper.showNext(); 
     } 
    }); 
} 

и то же самое для предыдущей кнопки.

+0

+1 вид и сладкий ответ. –

0

Вы можете позвонить yourViewFlipper.showNext() или yourViewFlipper.showPrevious() в ваш следующий и предыдущий обработчики щелчка кнопки.