2017-01-04 4 views
0

レイアウトは以下のようにシンプルで、tablayoutとviewpagerです。そして私たちはviewpagerでfragmentを使います。フラグメントにアニメーションがあります。今度はタブを変更するたびに、新しい断片が表示され、アニメーションが表示されます。タブを同じタブに戻すとアニメーションをキャンセルしたいたとえば、タブ1、タブ2に変更してからタブ1に戻ると、タブ1の最初の訪問、アニメーションが表示されますが、タブ1への2回目の訪問はキャンセルされます。どうやってするか ?ありがとう。tablayoutのタブを変更するときに同じタブまたはフラグメントを特定するにはどうすればよいですか?

答えて

0

最初の値がfalseのブール変数を追加して初めて、その値をtrueに変更してonAnimationEnd listner.thenの内部で次回のアニメーションのみをブール値falseに変更することができます。

boolean isAnimationShown = false; 
    animation.setAnimationListener(new Animation.AnimationListener() { 
     @Override 
     public void onAnimationStart(Animation animation) { 

     } 

     @Override 
     public void onAnimationEnd(Animation animation) { 
      isAnimationShown = true; 
     } 

     @Override 
     public void onAnimationRepeat(Animation animation) { 

     } 
    }); 
+0

ご迷惑をおかけしました。私は親指を考えていた。ありがとう。 – gemerator

0

あなたは簡潔な回答のため申し訳ありません

viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() { 

      @Override 
      public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { 

      } 

      @Override 
      public void onPageSelected(int position) { 

       // save the current position and last position of the pager. 
       // and check accordingly what you want to achieve. 

      } 
      @Override 
      public void onPageScrollStateChanged(int state) { 

      } 
     }); 

IN-ものをプレイしています。

関連する問題