【发布时间】:2018-11-05 08:51:04
【问题描述】:
我正在使用新的ListAdapter,它会自动为更改设置动画。我想禁用动画或以编程方式启用/禁用它。
class UserAdapter extends ListAdapter<User, UserViewHolder> {
public UserAdapter() {
super(User.DIFF_CALLBACK);
}
@Override
public void onBindViewHolder(UserViewHolder holder, int position) {
holder.bindTo(getItem(position));
}
public static final DiffUtil.ItemCallback<User> DIFF_CALLBACK =
new DiffUtil.ItemCallback<User>() {
@Override
public boolean areItemsTheSame(
@NonNull User oldUser, @NonNull User newUser) {
// User properties may have changed if reloaded from the DB, but ID is fixed
return oldUser.getId() == newUser.getId();
}
@Override
public boolean areContentsTheSame(
@NonNull User oldUser, @NonNull User newUser) {
// NOTE: if you use equals, your object must properly override Object#equals()
// Incorrectly returning false here will result in too many animations.
return oldUser.equals(newUser);
}
}
}
【问题讨论】:
-
在父布局上试试
android:animateLayoutChanges="false"? -
我在父布局和 recyclerview 上尝试过 (android:animateLayoutChanges="false"),但没有工作。
标签: android android-recyclerview listadapter