【发布时间】:2018-02-25 16:50:23
【问题描述】:
我的应用不使用 AppCompat,因为我的 minSdkVersion 是 15。我想在其中使用smart-app-rate library,但我得到了(这是预期的):
java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity.
请注意,我无法将我的应用更改为 AppCompat,因为 A) 没有真正的需要,并且 B) 如果我这样做,我的应用看起来与它应该的完全不同。
因此,我尝试以 ZIP 格式下载库并将其转换为不使用 AppCompat。我做了this answer 中提到的步骤,但现在我得到了一大堆错误(比如ContextCompat.getColor,我需要用非AppCompat 函数替换它),我不确定这是否是正确的方法.
如何轻松解决这个问题?
【问题讨论】:
-
没有“如果你的 min SDK 大于 X 那么你不应该使用 AppCompat”的声明。建议使用支持库(特别是如果您的最小 SDK 小于 21,因为 API 有很大的中断),因为支持组件提供了与元素交互的统一接口,而开发人员无需检查某些 API 级别的要求。此外,如果将
Theme.AppCompat定义为当前应用主题的父样式会大幅修改外观,那么您当前的方法可能有问题。 -
@GergelyKőrössy,谢谢;显然我缺少一些知识,需要阅读。当我将我的应用程序更改为使用 AppCompat 时,this is the difference。它看起来真的很糟糕,甚至滑块都不见了。你有什么提示我应该在我的代码中进一步查看吗?
-
那些是什么组件?可以使用
Theme.AppCompat.Light.DarkActionBar作为您的父级来修复应用栏文本颜色。 -
文本颜色已修复,谢谢。 (现在)缺少的组件实际上是
SeekBars,旋转 270。 -
这似乎是一个按钮,因为默认情况下它具有全部大写文本。您应该发布一个新问题或使用包含的 XML 布局对其进行编辑,因为这样调试是不可能的。
标签: android android-appcompat android-library