为什么 ContextThemeWrapper 现在仅限于 Support Library 组?
Why is ContextThemeWrapper now restricted to the Support Library group?
我开始使用 ContextThemeWrapper
将样式动态应用到 ImageButton
;基于 to another question of mine, and answers to other similar questions.
ContextThemeWrapper wrapper = new ContextThemeWrapper(getContext(), mStyleRes);
mImageButton = new AppCompatImageButton(wrapper, null, 0);
但最近 ContextThemeWrapper
构造函数中开始出现 lint 错误,指出:
ContextThemeWrapper
can only be called from within the same library
group (groupId=com.android.support)
我注意到标有 @RestrictTo(LIBRARY_GROUP)
注释的 class 导致出现 lint 错误。但我找不到任何关于 为什么 它仅限于 com.android.support
图书馆组的信息。
据我所知,这是以编程方式将样式、主题或主题叠加应用到 View
的唯一方法;除了将默认样式属性设置为构造函数中的第三个参数之外。所以我想知道为什么它的使用会受到限制;在支持库之外使用 class 有什么问题吗?会不会有我不知道的副作用?
我遇到的唯一 是关于一个(现已修复)错误;这导致此 lint 错误显示在 AppCompatActivity
的子 class 的 onCreate
方法中。我不认为这种情况是错误,而是故意限制;我想知道背后的原因。
我应该注意;这个限制(截至目前)实际上似乎对使用 ContextThemeWrapper
的代码没有影响。它编译和运行良好,并且按我预期的那样工作。
android.view.ContextThemeWrapper
!= android.support.v7.view.ContextThemeWrapper
.
第一个支持库被注释为 @RestrictTo(LIBRARY_GROUP)
,还有 @hide
- 它并不意味着 public API。
第一个是public。
我开始使用 ContextThemeWrapper
将样式动态应用到 ImageButton
;基于
ContextThemeWrapper wrapper = new ContextThemeWrapper(getContext(), mStyleRes);
mImageButton = new AppCompatImageButton(wrapper, null, 0);
但最近 ContextThemeWrapper
构造函数中开始出现 lint 错误,指出:
ContextThemeWrapper
can only be called from within the same library group (groupId=com.android.support)
我注意到标有 @RestrictTo(LIBRARY_GROUP)
注释的 class 导致出现 lint 错误。但我找不到任何关于 为什么 它仅限于 com.android.support
图书馆组的信息。
据我所知,这是以编程方式将样式、主题或主题叠加应用到 View
的唯一方法;除了将默认样式属性设置为构造函数中的第三个参数之外。所以我想知道为什么它的使用会受到限制;在支持库之外使用 class 有什么问题吗?会不会有我不知道的副作用?
我遇到的唯一 AppCompatActivity
的子 class 的 onCreate
方法中。我不认为这种情况是错误,而是故意限制;我想知道背后的原因。
我应该注意;这个限制(截至目前)实际上似乎对使用 ContextThemeWrapper
的代码没有影响。它编译和运行良好,并且按我预期的那样工作。
android.view.ContextThemeWrapper
!= android.support.v7.view.ContextThemeWrapper
.
第一个支持库被注释为 @RestrictTo(LIBRARY_GROUP)
,还有 @hide
- 它并不意味着 public API。
第一个是public。