Ich habe eine Sammlung von Ansichten in der Lage, den Bildschirm nach unten und anschließend rückwärts, aber jetzt, wenn ich versuche, ein CardView zu bewegen, wird es gehen, aber nicht sichern.ObjectAnimator nicht rückwärts
Wenn der Benutzer auf eine Schaltfläche klickt, wird die Sammlung von Ansichten auf- und ausgeblendet und wenn der Benutzer erneut auf die Schaltfläche klickt, kehren sie zurück. In dem Raum, der durch das Verschwinden von Views erstellt wurde, wird eine CardView-Ansicht geschlossen. Ich habe die CardView zu Drop-Down, aber wenn der Benutzer auf die Schaltfläche klickt, gibt die Auflistung der Ansichten aber nicht die CardView zurück - stattdessen verschwindet es einfach. Prost!
MainActivity (NB: in OnCreate())
...
final View blankCard = findViewById(R.id.child_card_template);
blankCard.setVisibility(blankCard.INVISIBLE);
...
ImageButton btn = (ImageButton) findViewById(R.id.imageLeft);
btn.setOnClickListener(new View.OnClickListener() {
int click_Animation_Type = 0;
View viewTest = findViewById(R.id.child_card_template);
View viewCard = viewTest;
@Override
public void onClick(View view) {
switch(click_Animation_Type) {
case 0:
moveSecondRow();
moveCardViewLayout();
click_Animation_Type = 1;
break;
case 1:
rewindSecondRow();
rewindCardViewLayout();
click_Animation_Type = 0;
break;
}
}
public void moveCardViewLayout() {
View viewTest = findViewById(R.id.child_card_template);
ObjectAnimator viewTestMovi = ObjectAnimator.ofFloat(viewTest, "translationY", 0f, 258f);
if(viewTest.getVisibility()==View.INVISIBLE) {
viewTestMovi.setDuration(250);
viewTestMovi.start();
viewTest.setVisibility(viewTest.VISIBLE);
}
}
public void rewindCardViewLayout() {
View viewTest = findViewById(R.id.child_card_template);
ObjectAnimator viewTestMoviReverse = ObjectAnimator.ofFloat(viewTest, "translationY", 258f, 0f);
if (viewTest.getVisibility() == View.VISIBLE) {
viewTestMoviReverse.setDuration(250);
viewTestMoviReverse.start();
viewTest.setVisibility(viewCard.INVISIBLE);
//THERE'S NO ANIMATION, JUST TURNING INVISIBLE.
//Registers View is visible.
}
}
public void moveSecondRow() {
for (int i = 0; i < list.size(); i++) {
ObjectAnimator bottomRow = ObjectAnimator.ofFloat(list.get(i), "translationY", 0f, 300f);
bottomRow.setDuration(250);//set duration
Animation fadeOutAnimation = AnimationUtils.loadAnimation(MainActivity.this, R.anim.fade_out_anim);
bottomRow.start();//start animation
list.get(i).startAnimation(fadeOutAnimation);
list.get(i).setVisibility(View.GONE);
}
}
public void rewindSecondRow() {
for (int i = 0; i < list.size(); i++) {
ObjectAnimator bottomRow = ObjectAnimator.ofFloat(list.get(i), "translationY", 300f, 0f);
bottomRow.setDuration(300);//set duration
Animation fadeInAnimation = AnimationUtils.loadAnimation(MainActivity.this, R.anim.fade_in_anim);
bottomRow.start();//start animation
list.get(i).setVisibility(View.VISIBLE);
list.get(i).startAnimation(fadeInAnimation);
}
}
});
Ich habe click_Animation_Type = 0 unter setContentView (R.layout.activity_main) hinzugefügt, aber es hat nichts geändert. Da es als 0 initialisiert wird, würde das tatsächlich irgendetwas verändern? Ich denke nicht, dass es eine Sache ist, von 0 zu 1 zu wechseln, da ich Toast-Nachrichten zeigte, wann auch immer es 0 und 1 war, während die rewindSecondRow() ausgeführt wurde. – Hews