暂时禁用Lollipop复选框上的动画

13

我有一个包含复选框的ListView。这个ListView附带过滤行为,通过设置新的数据(通过简单的setData() 方法)来改变过滤条件从而回收那些行。当发生这种情况时,任何被回收的行如果其 checked 状态改变,则会更新它的复选框,这反过来触发了Lollipop动画的绘制。

这种情况对用户造成干扰的方式很多。在程序中更改其状态时如何暂时禁用此动画?


也许在设置状态后尝试调用clearAnimation - Buddy
不行。根据我在类似问题中所读到的,动画不是一流的Android动画,而是Lollipop API中相关视图样式的一部分。无法成功地操纵动画效果似乎支持这一点。 - jneander
在Reyclerview上有相同的问题。动画会导致滚动延迟,因为列表中有很多复选框默认可以被选中,并且bindviewholder会在你滚动时同时触发所有这些动画。 - Jordy
2个回答

23

在调用 setChecked 方法后立即在 CheckBox 上调用 jumpDrawablesToCurrentState() 方法,可以跳过动画。


也解决了这个问题。 - Girish

1

试试这个

<CheckBox
    
    **android:background="@android:color/transparent"

    **android:clickable="false"android:id="@+id/login_access_tick"android:layout_width="wrap_content"android:layout_height="wrap_content"/>

希望它有所帮助。谢谢。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接