对主题样式进行依赖于 API 的引用



API 21+:

android:background="?android:attr/selectableItemBackgroundBorderless"

API <21:

android:background="?android:attr/selectableItemBackground"

怎么可能?


我知道使用这样"?attr/API_dependent_theme_reference"的解决方案。不幸的是,这不适用于应用程序小部件布局

另外,我知道该解决方案将style="..."用于valuesvalues-v21文件夹中view和多个样式定义。但是寻找一种直接分配background属性的方法(特别是作为Android,不幸的是,不支持分配多种样式,如CSS:class="style1 style2 etc"

您可以有两个自定义可绘制对象

可绘制/backround_name.xml

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
    <item android:drawable="?android:attr/selectableItemBackground"
</layer-list>

可绘制-v21/backround_name.xml

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
    <item android:drawable="?android:attr/selectableItemBackgroundBorderless"
</layer-list>

最新更新