【问题标题】:Why there is no xml components for the action bar when we create new android studio project?为什么新建android studio项目时action bar没有xml组件?
【发布时间】:2019-07-08 17:51:04
【问题描述】:

首先,我是 Android 开发新手。

我们已经知道,我们在 Activity 上看到的所有内容都是一个组件,该组件的源代码放在 activity_main.xml 文件中。

例如我有一个 TextView 组件:

所以它的 xml 源在 activity_main.xml 中:

好的,到这里为止一切都很好。

现在我面临的困惑是我的活动中有一个工具栏

但是acitvity_main.xml中没有这个工具栏的xml源码。

我浪费了一整天的时间来清除我的概念,但我做不到。还有一个名为 styles.xml 的文件,但它包含下图中的某些内容:

谁能告诉我这个工具栏是从哪里来的?我是 Android 开发的初学者。我很乐意让投稿人用简单准确的解释来讲述幕后的场景?

【问题讨论】:

  • 这是默认的操作栏。您的主题 (Theme.AppCompat.Light.DarkActionBar) 设置了它。
  • AFAIK我们只能用java和xml创建组件,我们如何用主题创建组件?这个主题也是xml吗?你能分享我可以看到这个工具栏的xml源的任何内部资源吗?
  • 主题只创建操作栏。您也可以通过选择没有主题的主题来请求它不创建主题。
  • 这个工具栏内部也是用xml写的吗?还有一件事这个工具栏是如何包含在主题中的?因为当我们包含任何内容时,我们会使用某种 标签,但 activity_main.xml 中没有这样的标签。
  • "AFAIK 我们只能使用 java 和 xml 创建组件,我们如何创建带有主题的组件?" -- 操作栏的实际实现由AppCompatActivity 或超类处理。如何做到这一点,以及是否使用布局资源,取决于AppCompatActivity 及其超类的实现者。

标签: android xml android-studio android-theme android-styles


【解决方案1】:

正如 Gabe Sechan 所说,它带有主题,因此没有 xml 文件可以在其中查看其代码,如果您想将其消失,只需在 AppTheme 样式标签中写入 “Theme.AppCompat.Light.NoActionBar”而不是“Theme.AppCompat.Light.DarkActionBar” 并运行应用程序,您将看到操作栏已消失。所以它的主题问题

【讨论】:

  • 那么,它默认自带主题吗?但是至少在默认的主题源代码文件中应该有源代码可以看到这个默认工具栏的xml标签。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-10-18
  • 2015-02-24
  • 2015-02-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多