То, что я пытаюсь выполнить, состоит в том, чтобы иметь главный экран с тремя кнопками и в зависимости от того, какую кнопку вы нажимаете на соответствующие слайды с правой стороны. Я использовал ViewFlipper
и используя ViewFlipper.showNext()
Я могу скользить в следующем представлении. Я хотел бы иметь возможность изменить, какой вид следующий в строке, чтобы у меня были кнопки, соответствующие представлениям.Изменение вида, которое отображается рядом с ViewFlipper
Я попытался использовать ViewFlipper.add()
и ViewFlipper.remove()
для достижения этого, но безрезультатно. Может ли кто-нибудь сказать мне, где я ошибаюсь? Заранее спасибо.
Ниже приведен мой код для моего main.xml
, и каждый вид представляет собой отдельный макет.
<?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>
А вот мой 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();
}
});
Спасибо, мне удалось сделать это с помощью этих методов, просто имея начальный в моем xml и добавляя View, который я хотел каждый раз, удаляя его потом –