La modification qui View est à côté de montrer à ViewFlipper
-
27-10-2019 - |
Question
Ce que je suis en train d'accomplir est d'avoir un écran principal avec trois boutons, et en fonction du bouton vous appuyez sur les diapositives correspondantes vue depuis le côté droit. Je l'ai utilisé ViewFlipper
et en utilisant ViewFlipper.showNext()
Je suis en mesure de glisser dans la prochaine vue. Je voudrais être en mesure de changement qui View est dans la ligne suivante afin que je puisse avoir des boutons correspondant aux vues.
J'ai essayé d'utiliser ViewFlipper.add()
et ViewFlipper.remove()
pour y parvenir, mais en vain. Quelqu'un pourrait-il me dire où je vais mal? Merci à l'avance.
Voici mon code pour mon main.xml
, et chaque vue est une disposition séparée.
<?xml version="1.0" encoding="utf-8"?>
<ViewFlipper xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/flipper"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<include
android:id="@+id/main"
layout="@layout/first_view" />
//Do I need these below?
<include
android:id="@+id/first"
layout="@layout/more_info_1" />
<include
android:id="@+id/second"
layout="@layout/more_info_2" />
<include
android:id="@+id/third"
layout="@layout/more_info_3" />
</ViewFlipper>
Et voici ma méthode de onCreate()
:
flipper = (ViewFlipper) findViewById(R.id.flipper);
Button moreInfo1 = (Button) findViewById(R.id.moreinfobutton1);
Button moreInfo2 = (Button) findViewById(R.id.moreinfobutton2);
Button moreInfo3 = (Button) findViewById(R.id.moreinfobutton3);
Button backButton1 = (Button) findViewById(R.id.backbutton1);
Button backButton2 = (Button) findViewById(R.id.backbutton2);
Button backButton3 = (Button) findViewById(R.id.backbutton3);
moreInfo1.setOnClickListener(new View.OnClickListener() {
public void onClick(View view) {
flipper.setInAnimation(inFromRightAnimation());
flipper.setOutAnimation(outToLeftAnimation());
flipper.showNext();
}
});
moreInfo2.setOnClickListener(new View.OnClickListener() {
public void onClick(View view) {
flipper.setInAnimation(inFromRightAnimation());
flipper.setOutAnimation(outToLeftAnimation());
//What to put here to change the next View to something else?
flipper.showNext();
}
});
moreInfo3.setOnClickListener(new View.OnClickListener() {
public void onClick(View view) {
flipper.setInAnimation(inFromRightAnimation());
flipper.setOutAnimation(outToLeftAnimation());
flipper.showNext();
}
});
backButton1.setOnClickListener(new View.OnClickListener() {
public void onClick(View view) {
flipper.setInAnimation(inFromLeftAnimation());
flipper.setOutAnimation(outToRightAnimation());
flipper.showPrevious();
}
});
backButton2.setOnClickListener(new View.OnClickListener() {
public void onClick(View view) {
flipper.setInAnimation(inFromLeftAnimation());
flipper.setOutAnimation(outToRightAnimation());
flipper.showPrevious();
}
});
backButton3.setOnClickListener(new View.OnClickListener() {
public void onClick(View view) {
flipper.setInAnimation(inFromLeftAnimation());
flipper.setOutAnimation(outToRightAnimation());
flipper.showPrevious();
}
});
La solution
Essayez d'utiliser ces méthodes de ViewFlipper
:
public void removeViewAt (int index)
public void addView (View child, int index, ViewGroup.LayoutParams params)
Cela devrait vous permettre de supprimer un certain point de vue que vous n'avez plus besoin et ajouter un autre.