1

Мне нужно создать приложение, которое имеет 2 специальных поведения на ViewPager, который имеет 3 страницы:Мульти слои ViewPager

  1. На странице 0, Есть 2 изображения, один поверх другого. фоновое изображение не перемещается при переходе со страницы 0 на страницу 1, но оно перемещается при переходе со страницы 1 на страницу 2 (и наоборот). На странице 1 нет ничего, кроме фонового изображения со страницы 0.

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

  2. Некоторые страницы будут иметь вид сверху, который будет двигаться быстрее, чем viewPager, обеспечивая эффект, как если бы они плавали над ним, полу-3d способом. Может появиться после того, как прокрутилась половина страницы.

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

Еще одна сложная вещь: мне нужно использовать индикатор viewPager, поэтому, даже если я решит использовать несколько viewPagers, мне тоже придется иметь дело с этой проблемой.

ответ

0

Скопировать фоновое изображение в обоих Страница 0 и Page 1, и попытаться изменить изображение смещения в onPageScrolled обратного вызова для достижения своей цели ~

FragmentPic простой фрагмент только один ImageView ребенка как внутривенно

/*this method change position of image to move it against its parent and make it looks static to the screen */ 
    public void changeImageOffset(int offset) { 
     RelativeLayout.LayoutParams lp = (LayoutParams) iv 
         .getLayoutParams(); 
       lp.leftMargin = offset; 
       lp.rightMargin = -offset; 
       iv.setLayoutParams(lp); 
    } 

в деятельности ViewPager

mViewPager.setOnPageChangeListener(new OnPageChangeListener() { 

      @Override 
      public void onPageSelected(int arg0) { 
       // TODO Auto-generated method stub 

      } 

      @Override 
      public void onPageScrolled(int position, float arg1, int arg2) { 
       ((FragmentPic) mAdapter.getItem(position)) 
         .changeImageOffset(arg2); 

      } 

      @Override 
      public void onPageScrollStateChanged(int arg0) { 
       // TODO Auto-generated method stub 

      } 
     }); 

Приведенный выше код может сделать стр.1 статические и страница2 покрыв ее справа налево.

+0

но мне нужно изображение, чтобы оставаться статичным (без движения) между страницами 0 и страницей 1, или, может быть, я вас не понял? –

+0

перемещает изображение по отношению к вложенному фрагменту, чтобы он был неподвижным на экране. – Bolton

+0

Я не понимаю. вы говорите о фоном imageView. вы говорите, что это не будет частью фрагмента? вы имеете в виду, я должен положить его в frameLayout и переместить его вместе с viewPager? если да, то как я могу заставить его выглядеть так, как будто он перемещается между страницами 1 - 2? –

Смежные вопросы