【问题标题】:Adding appcompat-v7 in gradle is not switching my layout views to AppCompat versions automatically在 gradle 中添加 appcompat-v7 不会自动将我的布局视图切换到 AppCompat 版本
【发布时间】:2019-09-25 21:42:47
【问题描述】:

我需要在棒棒糖前按钮和棒棒糖后按钮中具有相同的外观,并且我正在使用colorButtonNormal 属性修改按钮颜色。

我正在为我的应用使用这个主题:<style name="AppTheme" parent="Theme.AppCompat.Light">

因为我在所有 android 版本中都需要相同的外观,所以我在 gradle 中这样做:

implementation 'com.android.support:appcompat-v7:28.0.0'

正如文档中所述,只需添加该行即可将您的 xml 布局中的所有小部件转换为这些小部件的 appcompat 版本,以在旧 android 版本中显示与现代 android 版本相同的外观。

Button 的 AppCompat 版本必须能够访问 xml 中的此属性:

<Button
    app:backgroundTint="@color/unpressed2">
</Button>

但是有些事情出了问题,因为它忽略了它。如果我将该 xml 小部件强制为 AppCompat 版本,它会完美运行:

<android.support.v7.widget.AppCompatButton
    app:backgroundTint="@color/unpressed2">
</android.support.v7.widget.AppCompatButton>

为什么添加实现 'com.android.support:appcompat-v7:28.0.0' 不会自动将我所有的 Button 小部件更改为 android.support.v7.widget.AppCompatButton 小部件?

【问题讨论】:

  • 您使用的是 Material 主题还是 AppCompat 主题?
  • @GabrieleMariotti 我正在使用
  • @NullPointerException 当您在布局中使用 Button 并且顶级活动/对话框由 appcompat 提供时,将自动使用它。
  • @NullPointerException 您的活动是否扩展了 AppCompatActivity?
  • @RahulKhurana 再次非常感谢您!这就是问题所在。我不知道您需要使用 AppCompatActivity 才能在 xml 布局中使用 AppCompat 小部件。请在答案中发布,我会接受。

标签: android xml android-layout android-xml android-appcompat


【解决方案1】:

您需要使用AppCompatActivity 才能在xml 布局中使用AppCompat widgets

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-10-22
    • 2017-08-24
    • 1970-01-01
    • 1970-01-01
    • 2020-10-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多