物品更改高度时的Recyclerview动画

时间:2019-01-31 16:22:10

标签: android android-recyclerview android-animation adapter

我有一个RecyclerView带有适配器

RecyclerView初始化

list.setHasFixedSize(true);
LinearLayoutManager linearLayoutManager = new LinearLayoutManager(activity);
list.setLayoutManager(linearLayoutManager);
list.addItemDecoration(new DividerItemDecoration(activity, linearLayoutManager.getOrientation()));
list.setItemViewCacheSize(10);
list.setAdapter(adapter);

适配器onBindViewHolder

holder.subArea.setVisibility(isExpanded ? View.VISIBLE : View.GONE);
holder.hider.setVisibility(expandedItemId != null && !isExpanded ? View.VISIBLE : View.GONE);

holder.hider.setOnClickListener(v -> {
    expandedItemId = null;
    notifyItemRangeChanged(0, items.size());
});

holder.mainArea.setOnClickListener(v -> {
    expandedItemId = item.getId().equals(expandedItemId) ? null : item.getId();
    notifyItemRangeChanged(0, items.size());
});

当用户触摸一个项目时,它会展开,其他项目会显示一个覆盖,但是我对动画有一种奇怪的行为,如下所示,在动画过程中,第一项和第二项是重叠的。

我该怎么做才能获得合适的动画?

触摸之前

触摸了正在进行的动画

动画制作完成

0 个答案:

没有答案