当ImageButton src属性的状态在pressed和default状态之间发生变化时(未触及),我将尝试更改它。我创建了下面的StateList绘图,名为ic_plus_states -
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/ic_plus_white" android:state_pressed="true" />
<!--Default State-->
<item android:drawable="@drawable/ic_plus" />
</selector>当我设置android:src="@drawable/ic_plus_states"时,它可以正常工作,但是当我使用包含完全相同属性的styles.xml中定义的样式时,它就不起作用了。我做错什么了吗?
我在我的styles.xml里用了这个-
<style name="ScoreButtons" parent="Widget.AppCompat.Button">
<item name="android:tint">@color/colorPrimary</item>
<item name="android:background">@drawable/button_states</item>
</style>
<style name="PlusButtons" parent="ScoreButtons">
<item name="android:src">@drawable/ic_plus_states</item>
<item name="android:contentDescription">@string/plus_button</item>
</style>发布于 2020-05-10 08:09:58
当我使用包含完全相同属性的
styles.xml中定义的样式时,它不起作用。
这是因为您用样式定义了android:tint,ScoreButtons。
如果您从android:tint中删除ScoreButtons。您将得到预期的输出。
<style name="ScoreButtons" parent="Widget.AppCompat.Button">
<item name="android:background">@drawable/button_states</item>
</style>
<style name="PlusButtons" parent="ScoreButtons">
<item name="android:src">@drawable/ic_plus_states</item>
<item name="android:contentDescription">@string/plus_button</item>
</style>OR
您可以将android:tint="@null"设置为PlusButtons样式。
<style name="ScoreButton" parent="Widget.AppCompat.Button">
<item name="android:tint">@android:color/holo_red_dark</item>
<item name="android:background">@android:color/black</item>
</style>
<style name="PlusButton" parent="ScoreButton">
<item name="android:tint">@null</item>
<item name="android:src">@drawable/state_change</item>
</style>https://stackoverflow.com/questions/61708792
复制相似问题