【发布时间】:2015-11-26 21:41:31
【问题描述】:
我正在尝试使用 AppCompat v23,以便使用 BackgroundTint 为按钮着色。
我已将compile 'com.android.support:appcompat-v7:23.0.+' 添加到我的应用的 build.gradle 文件中。
我在 AndroidManifest.xml 中使用android:theme="@style/AppTheme" 设置了我的应用主题
在 styles.xml 我有:
<resources>
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light">
<!-- Customize your theme here. -->
</style>
</resources>
我不想覆盖任何东西,我只是想让基本主题正常工作。
我在我的主要活动声明中使用public class LandingActivity extends AppCompatActivity。
最后,在布局中,我在按钮上设置了android:backgroundTint 以在colors.xml 中设置颜色。
在运行 5.0 的设备上,颜色效果完美。在 4.0 设备上,按钮上没有颜色。这是默认的灰色。
我确定我遗漏了一些东西,但我不知道它是什么。 我还需要采取哪些其他步骤才能让 AppCompat 库发挥其魔力?
【问题讨论】:
-
简单来说,backgroundTint 是在 API21 (5.0) 中加入的。
-
android-developers.blogspot.no/2015/04/… 此时色彩感知小部件的完整列表是:-AppCompatButton
-
我认为这是这个版本的一个错误。使用版本 21 而不是 23。我希望它能工作
-
@Nathan 这并不意味着它从 XML 布局中读取属性。它永远无法在 4.0 上读取
android:backgroundTint,因为它没有实现。将来(我认为现在没有)我们可能可以使用app:backgroundTint,但不能使用android:。 tint aware 的意思是它从您在样式中设置的颜色属性中选择自己的颜色。我不记得是哪种颜色决定了按钮背景,但您可以尝试使用colorControlNormal、colorAccent、colorPrimary... -
@Nathan 做了一些研究,看起来 appcompat 的 v23 版本也引入了
app:backgroundTint。所以将android:backgroundTint更改为app:backgroundTint(系统会要求您导入命名空间)。
标签: java android button android-appcompat