我有一个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());
});
当用户触摸一个项目时,它会展开,其他项目会显示一个覆盖,但是我对动画有一种奇怪的行为,如下所示,在动画过程中,第一项和第二项是重叠的。
我该怎么做才能获得合适的动画?
触摸之前
触摸了正在进行的动画
动画制作完成