2013-08-30 2 views
0

Я ищу помощь при создании ViewFlipper, который будет работать как в календаре Android, когда вы переключаетесь между месяцами путем прокрутки.Android ViewFlipper с 2 видами

Я хочу иметь только два взгляды внутри моей viewFlipper, и когда я красть право я хочу сделать

mViewFlipper.setDisplayedChild(1); 

и когда я пальцем влево:

mViewFlipper.setDisplayedChild(0); 

и когда я красть дважды влево , я хочу получать каждый раз полную анимацию ввода/вывода и то же самое для правильного разворота. Полная анимация работает только тогда, когда я прокручиваю следующий и предыдущий, никогда в направлении следующего -> далее.

Спасибо за помощь!

ответ

1

Если вы только с помощью 2 просмотров, и в настоящее время и вы устанавливаете 0 и 1 вручную, как, например, просто позвоните

mViewFlipper.showNext(); 

вместо независимо от направления салфетки и применить правильную анимацию в зависимости от того, хотите ли вы сдвинуть его влево или вправо. Это будет означать, что даже если вы находитесь в режиме просмотра 1, и вы снова вернетесь вправо (как вы определили), тогда просмотр 0 вернется, как бесконечный флиппер между двумя видами.

http://developer.android.com/reference/android/view/animation/AnimationUtils.html

я может быть полностью недоразумение ваш вопрос, однако, это довольно расплывчатое.

0

** папка в разрешении = мультипликатор .......

перевод анимация XML file = s_in_fleft в папке аниматора в папке res ..... может помочь **

public boolean onTouchEvent(MotionEvent touchevent) { 
    switch (touchevent.getAction()) { 
    case MotionEvent.ACTION_DOWN: { 
     lastX = touchevent.getX(); 
     break; 
    } 
    case MotionEvent.ACTION_UP: { 
     float currentX = touchevent.getX(); 

     if (lastX < currentX) { 
      if (viewFlipper.getDisplayedChild() == 0) 
       break; 

      viewFlipper.setInAnimation(this, R.animator.s_in_fleft); 
      viewFlipper.setOutAnimation(this, R.animator.s_out_right); 
      viewFlipper.showNext(); 
     } 

     if (lastX > currentX) { 
      if (viewFlipper.getDisplayedChild() == 1) 
       break; 

      viewFlipper.setInAnimation(this, R.animator.s_in_fright); 
      viewFlipper.setOutAnimation(this, R.animator.s_out_left); 
      viewFlipper.showPrevious(); 
     } 
     break; 
    } 
    } 
    return false; 
} 
Смежные вопросы