关于Android:Android – RecyclerView Animation notifyItemChanged after notifyItemRemoved | 珊瑚贝

Android – RecyclerView Animation notifyItemChanged after notifyItemRemoved


我的 RecyclerView defaultItemAnimator 有问题。当我使用 notifyItemRemoved() 删除我的一个项目时,我还会在另一个特定索引上调用 notifyItemChanged() 以更改其中的文本。在删除动画期间,我调用 notifyItemChanged() 的项目会更改其文本,但会执行一些看起来很傻的动画,就像拇指酸痛一样突出。 (它会立即移动到新位置,而其余的则平稳移动到新位置)

有没有办法在 notifyItemRemoved() 完成时得到通知,以便我可以调用 notifyItemChanged()?

  • 签出这个 SO Answer Insert/Remove Animation Recycler View


一个可能的解决方案是设置一个处理程序。
获取notifyItemRemoved()和notifyItemChanged()的Animation类的源码。方法内部应该是以下行:

1
2
3
4
5
6
 animation.setDuration(getRemoveDuration())
            .alpha(0).setListener(new VpaListenerAdapter() {
        @Override
        public void onAnimationStart(View view) {
            dispatchRemoveStarting(holder);
        }

在 animateRemoveImpl() 方法中。

转到

的声明

1
getRemoveDuration()

并获得价值。
在处理程序内部设置 getRemoveDuration() 的 postDelay 和 notifyItemChange()。
处理程序可能看起来像:

1
handler.postDelayed(notifyItemChanged, theDurationValue); }

来源:https://www.codenong.com/34615478/

微信公众号
手机浏览(小程序)

Warning: get_headers(): SSL operation failed with code 1. OpenSSL Error messages: error:14090086:SSL routines:ssl3_get_server_certificate:certificate verify failed in /mydata/web/wwwshanhubei/web/wp-content/themes/shanhuke/single.php on line 57

Warning: get_headers(): Failed to enable crypto in /mydata/web/wwwshanhubei/web/wp-content/themes/shanhuke/single.php on line 57

Warning: get_headers(https://static.shanhubei.com/qrcode/qrcode_viewid_9831.jpg): failed to open stream: operation failed in /mydata/web/wwwshanhubei/web/wp-content/themes/shanhuke/single.php on line 57
0
分享到:
没有账号? 忘记密码?