【问题标题】:Button BackgroundTint not working with AppCompat v23按钮 BackgroundTint 不适用于 AppCompat v23
【发布时间】: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 的意思是它从您在样式中设置的颜色属性中选择自己的颜色。我不记得是哪种颜色决定了按钮背景,但您可以尝试使用colorControlNormalcolorAccentcolorPrimary ...
  • @Nathan 做了一些研究,看起来 appcompat 的 v23 版本也引入了app:backgroundTint。所以将android:backgroundTint 更改为app:backgroundTint(系统会要求您导入命名空间)。

标签: java android button android-appcompat


【解决方案1】:

而不是 &lt;Button android:backgroundTint="~" /&gt;,

尝试使用

<android.support.v7.widget.AppCompatButton xmlns:app="http://schemas.android.com/apk/res-auto" app:backgroundTint="~"/>

【讨论】:

    猜你喜欢
    • 2016-06-11
    • 1970-01-01
    • 1970-01-01
    • 2018-05-01
    • 2015-11-12
    • 2018-02-25
    • 2017-12-17
    • 2012-06-07
    • 1970-01-01
    相关资源
    最近更新 更多