Android 为什么ContextThemeWrapper现在仅限于支持库组?
我开始使用Android 为什么ContextThemeWrapper现在仅限于支持库组?,android,syntax-error,android-support-library,android-context,android-lint,Android,Syntax Error,Android Support Library,Android Context,Android Lint,我开始使用contexthemewrapper将样式动态应用于ImageButton;基于我的另一个问题,以及其他问题的答案 但是最近,ContextThemeWrapper构造函数上出现了一个lint错误,说明: contexthemewrapper只能从同一个库中调用 组(groupId=com.android.support) 我注意到用@RestrictTo(LIBRARY\u GROUP)注释标记的类导致出现lint错误。但是我找不到任何关于为什么它只限于com.android.sup
contexthemewrapper
将样式动态应用于ImageButton
;基于我的另一个问题,以及其他问题的答案
但是最近,ContextThemeWrapper
构造函数上出现了一个lint错误,说明:
contexthemewrapper
只能从同一个库中调用
组(groupId=com.android.support)
我注意到用@RestrictTo(LIBRARY\u GROUP)
注释标记的类导致出现lint错误。但是我找不到任何关于为什么它只限于com.android.support
library组的信息
据我所知,这是以编程方式将样式、主题或主题覆盖应用于视图的唯一方法;除了将默认样式属性设置为构造函数中的第三个参数之外。所以我想知道为什么它的使用会受到限制;在支持库之外使用该类是否存在一些问题?会有我不知道的副作用吗
我唯一遇到的是一个(现已修复)bug;这导致此lint错误显示在AppCompatActivity
子类的onCreate
方法上。我不认为这是一个错误,而是一个故意的限制;我想知道背后的原因
我应该注意到;这个限制(到目前为止)实际上似乎对使用ContextThemeWrapper
的代码没有影响。它的编译和运行都很好,并且可以像我期望的那样工作。!=android.support.v7.view.ContextThemeWrapper
支持库1被注释为@RestrictTo(库组)
,也被注释为@hide
——它不是一个公共API
第一个是公共的。我在导入android.support.v7.view.ViewPropertyAnimatorCompatSet中看到了同样的问题,但我找不到替代方案,有什么想法吗?@TheHebrewHammerandroid.support.v4.view.ViewPropertyAnimatorCompat
只是将导入从“support.v7.view”更改为“android.view”,有时解决方案比您想象的要简单:)ha haI不得不将其从android.view.ContextThemeWrapper
更改为androidx.appcompat.view.ContextThemeWrapper
,以使低API级别上不可用的警告消失。警告was调用需要API级别23(当前最小值为16):“new android.view.ContextThemeWrapper”
ContextThemeWrapper wrapper = new ContextThemeWrapper(getContext(), mStyleRes);
mImageButton = new AppCompatImageButton(wrapper, null, 0);