Я разрабатываю приложение для Android (игру) с помощью viewpager, который содержит три фрагмента. У меня есть TranslateAnimation с некоторыми ImageViews, которые показывают: «Это ваша очередь, вы можете играть». В настоящее время показана моя анимация (нет, если это слово существует на английском языке ...?) Только на одном фрагменте, и если я сменю фрагмент, анимация будет продолжаться с тем же фрагментом, чтобы скрыть его.Как показать анимацию на всех фрагментах пейджера представления в android?
Мой вопрос: как показать анимацию перед тремя фрагментами, чтобы при изменении фрагмента анимация всегда была здесь?
Мой FragmentActivity с моим ViewPager:
public class Principal extends FragmentActivity {
private PagerAdapter mPagerAdapter;
private List<Fragment> fragments;
private ViewPager pager;
private AnimationMessage animAToiDeJouer;
private AnimationMessage animDevoileTesCartes;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
super.setContentView(R.layout.principal);
DataModel.getInstance().setFragmentActivity(this);
// Création de la liste de Fragments que fera défiler le PagerAdapter
fragments = new Vector<Fragment>();
// Ajout des Fragments dans la liste
fragments.add(Fragment.instantiate(this,PageGaucheFragment.class.getName()));
fragments.add(Fragment.instantiate(this,PageMilieuFragment.class.getName()));
fragments.add(Fragment.instantiate(this,PageDroiteFragment.class.getName()));
// Création de l'adapter qui s'occupera de l'affichage de la liste de Fragments
this.mPagerAdapter = new MyPagerAdapter(super.getSupportFragmentManager(), fragments);
pager = (ViewPager) super.findViewById(R.id.viewpager);
// Affectation de l'adapter au ViewPager
pager.setAdapter(this.mPagerAdapter);
pager.setOffscreenPageLimit(3);// Pour éviter de pb de disparition !!
pager.setCurrentItem(1);
ImageView atdj_bloc = (ImageView) findViewById(R.id.atdj_bloc);
ImageView atdj_haut = (ImageView) findViewById(R.id.atdj_haut);
ImageView atdj_bas = (ImageView) findViewById(R.id.atdj_bas);
ImageView dtc_bloc = (ImageView) findViewById(R.id.dtc_bloc);
ImageView dtc_haut = (ImageView) findViewById(R.id.dtc_barre_haut);
ImageView dtc_bas = (ImageView) findViewById(R.id.dtc_barre_bas);
animAToiDeJouer = new AnimationMessage(atdj_haut, atdj_bloc, atdj_bas);
animDevoileTesCartes = new AnimationMessage(dtc_haut, dtc_bloc, dtc_bas);
}
...
И FragmentPagerAdapter:
public class MyPagerAdapter extends FragmentPagerAdapter {
private final List<Fragment> fragments;
//On fournit à l'adapter la liste des fragments à afficher
public MyPagerAdapter(FragmentManager fm, List<Fragment> fragments) {
super(fm);
this.fragments = fragments;
}
@Override
public Fragment getItem(int position) {
return (Fragment) this.fragments.get(position);
}
@Override
public int getCount() {
return this.fragments.size();
}
}
Я надеюсь, вы понимаете, что я хотел бы, спасибо!
Спасибо за ваш ответ, но PageTransformers являются анимации между фрагментами не так ли? Моя анимация на самом деле является TranslateAnimation с ImageViews, в которой говорится: «Сейчас ваша очередь, вы можете играть» – Will
Я отредактировал свой ответ – Fahad
Хорошо, но мои ImageViews уже анимированы. Проблема в том, что анимация показана только на одном фрагменте, поэтому, если я изменяю фрагмент, анимация не находится на новом текущем фрагменте (она скрыта на предыдущем). – Will