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();      
         }
     });
Était-ce utile?

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.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top