[英]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已经尝试了第一个,但没有帮助。 我还没有尝试过第二个主题,因为我不太了解主题是什么。
问题:
编辑:回复评论后,一些其他信息如下:
在清单中使用字符串“ 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.