延迟后会显示Android动画

时间:2020-06-04 13:54:40

标签: android android-recyclerview android-animation

我在MotionLayout中有一个recyclerView和一个“视图”,以便该视图显示在屏幕底部的recyclerView之上。我将onScrollListener添加到了recyclerView中,这样当我向上滚动RecyclerView时,视图就会隐藏。代码是这样的:

RecyclerView recyclerView;
View v;
@Override
protected void onCreate(Bundle savedInstanceState)
{
//initialise views here

recyclerView.addOnScrollListener(new RecyclerView.onScrollListener(){
             @Override
             public void onScrolled (RecyclerView recyclerView, int dx, int dy)
            {  
                if(dy > 0)
                {
                    slideDown();
                  }
              else if(dy < 0)
              {
                  slideUp();
                }



            }


            @Override
            public void onScrollStateChanged (RecyclerView recyclerView, int newState)
            {
              }


});

}

public void slideUp()
{
  v.clearAnimation();
  ObjectAnimator.ofFloat(v, "ScaleY", 1 ).setDuration(200).start();  // to revert back


}

public void slideDown()
{
 v.clearAnimation();
  ObjectAnimator.ofFloat(v, "ScaleY", -1 ).setDuration(200).start(); //to hide back



}

我在这里不使用BottomNavigationBehaviour,因为我不能使其成为Coordinator布局的子级。我还指定了运动布局约束中的“视图”。

测试: 当我向上滚动recyclerView时,仅在recyclerView停止滚动之后才开始slideDown动画。我不要这个行为如果我更改slideDown()中的代码以将视图设置为不显示而没有任何动画,则视图在我开始滚动时便会消失;它不等待recyclerView停止。

这种行为对我来说似乎很奇怪。有什么我想念的吗?

0 个答案:

没有答案