android – 在支持v7的xml中应用selectableItemBackground
即使在我的应用程序中包含Android支持v7
添加android:background="?android:attr/selectableItemBackground"
让我的IDE,Eclipse抛出一个错误(阻止我编译),通知我selectableItemBackground只是最小的Api 11和以上。
如何将此属性添加到XML中的背景?
假设从高级图书馆复制和粘贴不是一个解决scheme
由于该属性是在库中定义的(支持v7),所以您可以将其用作用户定义的属性:即不带android:
前缀:
android:background="?attr/selectableItemBackground"
你看到的错误指出?android:attr/selectableItemBackground
可用于API版本> = 11。
这里是selectedItemBackground。 你可以在/platforms/android-14/data/res/themes.xml中find它
<selector xmlns:android="http://schemas.android.com/apk/res/android" android:exitFadeDuration="@android:integer/config_mediumAnimTime"> <item android:state_window_focused="false" android:drawable="@color/transparent" /> <!-- Even though these two point to the same resource, have two states so the drawable will invalidate itself when coming out of pressed state. --> <item android:state_focused="true" android:state_enabled="false" android:state_pressed="true" android:drawable="@drawable/list_selector_background_disabled" /> <item android:state_focused="true" android:state_enabled="false" android:drawable="@drawable/list_selector_background_disabled" /> <item android:state_focused="true" android:state_pressed="true" android:drawable="@drawable/list_selector_background_transition" /> <item android:state_focused="false" android:state_pressed="true" android:drawable="@drawable/list_selector_background_transition" /> <item android:state_focused="true" android:drawable="@drawable/list_selector_background_focused" /> <item android:drawable="@color/transparent" /> </selector>
你可以在你的Android SDK目录中finddrawables
../platforms/android-14/data
不是这方面的专家,但似乎你需要基于主题的平台版本。 官方指南很好地解释了这个过程。
您必须为每个版本创build不同的XML文件,并将其保存在res/values-v7
, res/values-v11
等文件中,然后使用这些样式进行查看。 像这样的东西:
在res/values-v7
:
<style name="LightThemeSelector" parent="android:Theme.Light"> ... </style>
在res/values-v11
:
<style name="LightThemeSelector" parent="android:Theme.Holo.Light"> <item name="selectableItemBackground">?android:attr/selectableItemBackground</item> ... </style>
然后使用风格的观点:
<TextView style="@style/LightThemeSelector" android:text="@string/hello" />
希望这可以帮助。 干杯。