首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >android -在支持v7的xml中应用selectableItemBackground

android -在支持v7的xml中应用selectableItemBackground
EN

Stack Overflow用户
提问于 2013-11-01 03:05:54
回答 3查看 80.2K关注 0票数 76

即使我的应用程序中包含了对安卓系统的支持v7

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

使我的集成开发环境Eclipse抛出一个错误(阻止我编译),通知我selectableItemBackground只适用于min Api 11和更高版本。

如何在XML中将此属性添加到背景?

假设从更高的库中复制和粘贴不是一个解决方案

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-11-05 10:03:13

由于该属性是在库中定义的(支持v7),因此您可以将其用作用户定义的属性:即,不带android:前缀:

代码语言:javascript
复制
android:background="?attr/selectableItemBackground"

您看到的错误是指出?android:attr/selectableItemBackground可用于>=版本的API 11。

票数 220
EN

Stack Overflow用户

发布于 2013-11-01 03:22:01

这是selectedItemBackground。您可以在/platform/android-14/data/res/hemes.xml中找到它

代码语言:javascript
复制
<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目录中找到可绘制的

代码语言:javascript
复制
../platforms/android-14/data
票数 16
EN

Stack Overflow用户

发布于 2013-11-01 03:37:52

不是这方面的专家,但似乎你需要基于平台版本的主题。我认为official guide很好地解释了这个过程。

您必须为每个版本创建不同的XML文件,并将它们保存在res/values-v7res/values-v11等格式中,然后将这些样式用于您的视图。如下所示:

res/values-v7

代码语言:javascript
复制
<style name="LightThemeSelector" parent="android:Theme.Light">
    ...
</style>

res/values-v11

代码语言:javascript
复制
<style name="LightThemeSelector" parent="android:Theme.Holo.Light">
    <item name="selectableItemBackground">?android:attr/selectableItemBackground</item>
    ...
</style>

然后使用视图的样式:

代码语言:javascript
复制
<TextView
    style="@style/LightThemeSelector"
    android:text="@string/hello" />

希望这能有所帮助。干杯。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19714682

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档