2017-08-15 292 views
0

我有一个RecyclerView这基本上除了滚动编程以外什么都没有做。问题是我需要这个RecyclerView滚动到没有动画的位置。这是我正在使用的代码。在RecyclerView中禁用滚动动画

((LinearLayoutManager)recyclerView.getLayoutManager()).scrollToPositionWithOffset(position, offset); 

在此先感谢。

+0

'RecyclerView'的外观没有'可滚动'属性。另外,我实际上并不想停止滚动,只是在调用scrollTo时禁用动画。 –

+0

检查这可能会帮助你:https://stackoverflow.com/questions/29873859/how-to-implement-itemanimator-of-recyclerview-to-disable-the-animation-of-notify –

+0

是的,我试过了。但没有运气。 –

回答

0

您可以自己制作动画ItemView控件, 使用的起始和终止位置两个可变startPositionendPositionanimate(viewHolder, false)是一个功能,您可以添加或删除动画

public void onBindViewHolder(ViewHolder viewHolder, int position) { 
     final DataModel dataModel = dataList.get(position); 

     viewHolder.textTittle.setText(dataModel .getTitle());  

     if (startPosition <=position && position<= endPosition) { 
      animate(viewHolder, false); 
     } else { 
      animate(viewHolder, true); 
     }  

    } 

动画之类的函数

public void animate(RecyclerView.ViewHolder viewHolder) { 
      final Animation animAnticipateOvershoot = AnimationUtils.loadAnimation(context, 
        R.anim.animator_for_bounce); 
      viewHolder.itemView.setAnimation(animAnticipateOvershoot); 
     } 
+0

我实际上不想动画,使用'scrollToPosition()'滚动动画。 –