开关 - 如何在 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 线程,这会阻止任何类型的动画。
我在 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 线程,这会阻止任何类型的动画。