2017-09-06 15 views
0

私は、画面の下に移動して後で逆転できるビューのコレクションを持っていますが、今ではCardViewを移動しようとすると、下に移動しますが戻ってこないようになります。ObjectAnimatorが反転していません

ユーザーがボタンをクリックすると、ビューのコレクションがドロップダウン/フェードアウトするように要求され、ユーザーがボタンを再度クリックすると表示されます。消えたビューのコレクションによって作成されたスペースでは、CardViewがドロップダウンします。私はCardViewをドロップダウンするが、ユーザーがボタンをクリックすると、ビューのコレクションが返されるが、CardViewは返されず、代わりに消えてしまう。乾杯!

MainActivity(NB:OnCreate関数に())が0と

 ... 


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); 
       } 
      } 

    }); 

答えて

0

たびclick_Animation_Type開始するsetContentViewの下click_Animation_Type = 0;層を置きます。

+0

setContentView(R.layout.activity_main)の下でclick_Animation_Type = 0を追加しましたが、何も変更されていません。 0として初期化されているので、これは実際に何かを変えるでしょうか? rewindSecondRow()を実行しているときに0と1のときにトーストメッセージを表示していたので、0から1に変更することは問題ではないと思います。 – Hews

関連する問題