开关 - 如何在 Android 中启用默认动画

Switch - how to enable default animation in Android

我在 RecyclerView 中的每个列表项上都有一个标准的未更改开关 class(以便打开或关闭某个项目)。通常 Android 中的开关有一个很好的默认动画,开关滑动到位并出现一个小气泡动画。在我的例子中,开关只是跳到最终位置而没有任何动画。这是我的布局:

<Switch
    android:id="@+id/alarm_toggle"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentEnd="true"
    android:layout_centerVertical="true"
    android:checked="true"
    android:focusable="false"
    android:focusableInTouchMode="false"
    android:animateLayoutChanges="true"
    android:padding="10dp" />

属性android:animateLayoutChanges="true"没有任何作用。在 Android M 和 O 上试过了。如何启用标准动画?

如果切换 Switch 执行任何 java 代码,这可能会影响动画是否播放。也许你有一些调用 notifyDataSetChanged()(或类似的)的东西,这将导致立即重新绘制整个 RecyclerView。或者您可能不小心阻塞了 UI 线程,这会阻止任何类型的动画。