我设置了一些样式来处理不同的API(一个用于v21,另一个用于低于此值的任何API)。我想为我的ImageButton设置一个样式,但它似乎没有按照我期望的方式运行。
v-21的风格是
<style name="BorderlessImageButton" parent="AppTheme.BorderlessImageButton">
<item name="android:background">?android:attr/selectableItemBackgroundBorderless</item>
<item name="android:tint">@color/secondary_text</item>
</style>
将用于v-21以下所有其他API的样式是
<style name="BorderlessImageButton" parent="AppTheme.BorderlessImageButton"/>
<style name="AppTheme.BorderlessImageButton" parent="@android:style/Widget.ImageButton">
<item name="android:tint">@color/secondary_text</item>
<item name="android:background">@color/borderless_button_background</item>
</style>
这是我的xml资源
<ImageButton
android:id="@+id/imageButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_toStartOf="@id/date_picker"
android:background="@null"
android:padding="10dp"
android:src="@drawable/ic_today_white_24dp"
android:theme="@style/BorderlessImageButton" />
如果我在具有v-21或v-22的设备上运行此按钮,则该按钮在视觉上对我的触摸没有反应,因为我期望使用?android:attr / selectableItemBackgroundBorderless。此外,在v-21以下的任何设备上,该按钮仍然不会对我为其设置的选择器资源做出反应。
res/color/borderless_button_background.xml:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true" android:color="@color/accent" />
<item android:color="@color/transparent"/>
</selector>
请根据用户在其设备上使用的API,帮助我让按钮对触摸做出正确反应。
由于