我使用的是RecyclerView一个SortedList使用a的数据SortedListAdapterCallback.我想禁用onChange事件的动画,但保留它们为onInserted/ onRemoved/ onMoved.我曾尝试调用setSupportsChangeAnimations(false)上DefaultItemAnimator使用的RecyclerView,但动画仍然出现.如果我调用setItemAnimator(null) 所有动画都按预期成功删除了.
我试着查看实现,看起来似乎supportsChangeAnimations是true,RecyclerView通过保持旧的viewHolder并将其交叉淡入到新的viewHolder ,将动画更改事件.我不希望这样.如果supportsChangeAnimations是false,新老viewHolders然而,将相同的对象,而且会有替代地是onMoved动画从x到x(即没有实际移动).然而,这意味着该项目将产生令人讨厌的反弹效果.我也不想要那个,我根本不需要动画.:(
来自DefaultItemAnimator.java:
@Override
public boolean animateChange(ViewHolder oldHolder, ViewHolder newHolder,
int fromX, int fromY, int toX, int toY) {
if (oldHolder == newHolder) {
// Don't know how to run change animations when the same view holder is re-used.
// run a move animation …Run Code Online (Sandbox Code Playgroud) 伙计我正在开发Android TV应用程序,所以我在水平和垂直方向使用了recyclerview,我使用了一个方法来刷新垂直recyclerview的适配器,使用adapter.notifyDataSetChanged(),但我遇到了一个问题.1.它的焦点已经消失并且按下任何D-pad键它不能正常工作键正在工作2.我使用了adapter.notifyItemRangeChanged(0,categoryDataList.size())但我还有一个问题,它的重点是继续布局的第一个元素,否则布局的最后一个.所以请尽快帮助我.提前致谢.