gpt4 book ai didi

android - Android 中的上下文是如何创建的? ContextThemeWrapper 的目的是什么?

转载 作者:可可西里 更新时间:2023-11-01 18:47:48 32 4
gpt4 key购买 nike

我正在帮助整理此页面:What is a context?

为了帮助说明组件如何与 Context 相关,我通过查看框架源代码创建了这个图表:

Context Subclasses

在深入了解之后,我有以下问题:

  1. 什么创建了一个 Context 以及使用了哪些具体类? Context 基类本身是一个抽象类,它需要几乎所有的其实现方法。并且 ContextWrapper 在实例化时需要传入一个 Context 实例作为基础上下文,因此必须至少有一个具体的 Context类。
  2. 我了解 ContextWrapper 及其子类利用包装器/装饰器模式根据需要向基 Context 类添加功能。 ContextThemeWrapper 的用途是什么?它重写了一些方法,但如果它包装了一个基础 Context,为什么不直接将调用委托(delegate)给基础上下文?例如,Activity类扩展了ContextThemeWrapper,为getTheme()setTheme()提供了具体的实现.为什么?

Android 开发人员 java 文档有点含糊。例如,ContextWrapper

最佳答案

回答#2:

ContextThemeWrapper 为上下文添加主题支持,否则您无法将任何主题应用到您创建的 View 。这就是为什么 Activity 布局支持主题而 widget 布局不支持的原因,例如。您也可以自己创建一个 ContextThemeWrapper 来用另一个主题覆盖当前主题。

关于android - Android 中的上下文是如何创建的? ContextThemeWrapper 的目的是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31460707/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com