我在我的 XML 中声明了一个 Switch,它是使用特定主题的 Activity 的一部分:
<Switch
android:id="@+id/sw_TakeTime_SelectRange"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:switchPadding="@dimen/dim_ButtonPadding"
android:showText="false"
android:text="@string/sw_SelectDateRange_Switch_Range"
android:textColor="@color/Mercedes_BLACK"
android:textSize="18sp"
android:theme="@style/SwitchCompatStyle"
android:switchMinWidth="20dp"
app:layout_constraintBottom_toBottomOf="@+id/bt_SelectDateRange_Confirm"
app:layout_constraintStart_toStartOf="@+id/cv_SelectDateRange"
app:layout_constraintTop_toTopOf="@+id/bt_SelectDateRange_Confirm"/>
但是切换动画没有显示... 这是预览:
这是正在运行的应用程序...
这是我在 SwitchCompatStyle
中编辑的内容
<style name="SwitchCompatStyle">
<item name="colorControlActivated">@color/Mercedes_RED</item>
</style>
我想通了,真正的问题是我的 Activity 的主题,它设置为
<activity android:name=".activity_SelectDateRange"
android:theme="@style/Theme.Transparent">
这个透明主题包括:
<style name="Theme.Transparent" parent="android:Theme">
<item name="android:windowIsTranslucent">true</item>
<item name="android:windowBackground">@android:color/transparent</item>
<item name="android:windowContentOverlay">@null</item>
<item name="android:windowNoTitle">true</item>
<item name="android:windowIsFloating">true</item>
<item name="android:backgroundDimEnabled">false</item>
<item name = "android:windowCloseOnTouchOutside">true</item>
</style>
如果我将它与开关结合使用,动画将不再起作用。 我试图通过主题中的设置来删除设置,以检测问题出在哪一个上,但我无法弄清楚。也许是设置的组合。
最佳答案
这似乎确实是一个错误。我也有同样的问题。如果我点击开关本身,它会很好地动画,但如果我在 NavigationDrawer 打开时更改开关状态,则没有动画。
查看 Android 问题跟踪器条目:SwitchCompat.setChecked does not animate inside RecyclerView
关于java - 为什么没有显示实际的 Switch 图像/动画?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57714651/