繁体   English   中英

什么是主题?如何知道我是否拥有“正确”的主题?

[英]What is a theme and how do I know if I have the “correct” one?

在当前项目中,当我为特定布局选择Android Studio 2.2.2中的“设计”选项卡时,出现错误提示

缺少样式。 是否为此布局选择了正确的主题?

然后继续说

无法在当前主题中找到样式“ textEditSuggestionItemLayout”(未显示42个类似错误)

但是,实际布局在设计器中和运行时呈现为OK。

关于此还有很多其他的SO帖子,例如这里这里 ,大多数答案似乎都涉及清除缓存并重新启动Android Studio,或从下拉列表中选择其他主题。 II已经尝试了第一个,但没有帮助。 我还没有尝试过第二个主题,因为我不太了解主题是什么。

问题:

  1. 该错误表示主题本身存在错误。 什么? 主题文件是项目的一部分吗,也就是说,该主题文件是我应该创建,编辑的一部分,并且应作为APK的一部分进行构建和交付,还是仅在开发人员IDE中使用?
  2. 如果我从下拉列表中选择了不同的主题,我怎么知道“正确”的主题是什么?
  3. 由于我的项目可以按原样构建和运行,因此我可以忽略这些错误吗? 换句话说,这些错误是代码中的错误还是开发环境中的问题?

编辑:回复评论后,一些其他信息如下:

在清单中使用字符串“ theme”的唯一位置是

  android:theme="@style/Theme.FullScreen"

...,而FullScreen是下拉菜单中指定的主题。

我在项目中搜索了字符串“ textEditSuggestionItemLayout”,而Android Studio找不到该字符串。

如果您最近更新了AS或其任何组件,请尝试“使缓存无效并重新启动”。

否则,请尝试从“设计”选项卡中选择AppTheme,或将其从默认选项更改为AppTheme。 styles.xml选择一个符合父应用程序主题的主题。

错误的原因可能是从IDE发生故障到选择styles.xml未提及的主题(很可能)。

您可以在项目范围内搜索textEditSuggestionItemlayout或它声称错过的其他样式。

这些文件位于您自己的res/values/styles.xml和/或res/values/themes.xml文件中,或者在SDK中提供,因此您会看到一些建议, 取消选中“自动选择最佳”并选择一个您已安装的版本。 在某些情况下,最新的API版本的呈现工具不起作用。

例如,如果您在Theme.Holo设置了Theme.Holo ,但您使用的是AppCompatActivity ,则将出现渲染错误,您必须使用Theme.AppCompat (或后代)。 这些主题可以从设计编辑器的下拉菜单中更改。

您可以在AndroidManifest.xml查看将哪些主题/样式应用于“活动”。


res/values/styles.xml

<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
    <item name="colorPrimary">@color/PrimaryColor</item>
    <item name="colorPrimaryDark">@color/PrimaryDarkColor</item>
    <!-- Customize your theme here. -->
</style>

AndroidManifest.xml

<application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme">

注意: android:theme=@style/


如果仍然缺少主题,则可能缺少某些依赖项,例如

compile 'com.android.support:design:<your_version_here>' 

如果您的代码运行良好,那么可以肯定地忽略它,但是我认为让布局设计器重新工作不应被忽略。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM