在Web开发中,我看到标签如何在浏览器中定义默认主题,以及它们是如何应用的.

然而,对于Android工作室的主题,我真的很困惑.我可以使用?attr/myClass定义我的自定义主题,然后将其应用到android:theme="?attr/yClass"的小部件上,然后在我的白天或夜晚主题文件中为该属性分配 colored颜色 .

但是,让我困惑的是--那紫色.它是从哪里来的?当我将主题标题设置为

<style name="Theme.TestingThemes" parent="Theme.MaterialComponents.DayNight.NoActionBar">

紫色是为not night模式而来.

  • 当我使用Android Studio "default"附带的其他样式时,我看不到完全是紫色的.

  • 有些主题允许我设置自己的 colored颜色 ,但另一些主题不允许,比如我提到的那个.

  • 102当我在app/res/values/themes/*app/res/values/colors.xml*中打开主题文件时,我只看到定义了不到10个主题.103我看到Android工作室向我推荐了long个 colored颜色 名称列表!这些是从哪里来的?

我正面临着我的第一个移动开发任务,真的很沮丧.我只用vim作为我的文本编辑器.我在安卓演播室里快要淹死了.它很酷,功能也很强大,但我需要一些遛娃的助手.求救.

推荐答案

在Android Studio中创建的默认新项目在项目(res/values/colors.xml)中提供了colors.xml资源,其中定义了您描述的purple_500purple_700.

你看到的任何其他 colored颜色 和主题不在你自己的项目文件中,都在AppCompat和material 组件库中(在默认的新项目中定义为项目依赖项),或者它们内置在Android本身中.

在Android Studio左侧的项目面板中,如果展开外部库,您可以看到为项目导入的所有代码库都是作为依赖项导入的(这些代码库在app/build.gradle中定义,并自动从Web下载).这些从属关系包括AppCompat和可能的material 组件库,其中包含它们自己提供的资源.

您不能修改库的内容.您可以通过扩展(创建子样式和主题)进行定制.

如果您想要查看在Android Studio中定义引用的位置(使用XML或其他语言,如Kotlin和Java),您可以按住Ctrl键并单击,它将跳到在任何文件中定义它的行上.

Android相关问答推荐

Jetpack Compose-如何使用值动画直接控制其他动画

使用Android Jetpack Compose,为子Composable定义ViewModel是不是一种糟糕的做法?

不能有意地从一个活动的可组合功能转移到另一个活动

学习Kotlin问题.无法理解Modifier参数

如何显示具体的商品数量?

如何在 compose 中使用可变对象?

Clean MVVM 架构中的 API 响应处理

React-Native Manifest 合并失败并出现多个错误

expo 上的 socket.io 无法从 Android 连接

在 kotlin 协同 routine 中,如何将数据范围限定为请求路径(以 MDC 为例)?

使用 settings.gradle 文件将 Firebase 依赖项添加到 Android 项目

如何仅同步 local_manifest.xml?

根据另一个数组的值对数组进行排序

如何在 android compose 中将具有渐变边缘的透明圆圈绘制到阴影覆盖层中?

如何在 Jetpack Compose 中创建无限pager

每次在 Jetpack Compose 中调用导航

如何将一个 Composable 作为其参数传递给另一个 Composable 并在 Jetpack Compose 中显示/运行它

java.lang.IllegalArgumentException:与请求匹配的导航目的地 NavDeepLinkRequest

是什么让 Android Studio 中的按钮变成紫色?加上新手的其他奇怪行为

如何在 Jetpack compose 中将 Canvas 中的文本居中?