在当前主题中找不到样式“coordinatorLayoutStyle”
Posted
技术标签:
【中文标题】在当前主题中找不到样式“coordinatorLayoutStyle”【英文标题】:Failed to find style 'coordinatorLayoutStyle' in current theme 【发布时间】:2018-08-23 20:28:12 【问题描述】:我正在使用最新版本的 android studio (3.0),以及最新的构建工具 (27) 和类似的 API 级别。
布局没有在设计选项卡中呈现,它造成了很多麻烦,尤其是我正在使用协调器布局。
我该如何解决这个问题?
【问题讨论】:
你试过invalidate caches/restart
吗?
请添加一些代码或更多解释
【参考方案1】:
这可能存在问题:https://issuetracker.google.com/issues/37048767
使用其他版本的 Android(比如 Android API 22)进行渲染。
或者检查任何拼写错误或无效的 XML 条目。
参考这里:Missing styles. Is the correct theme chosen for this layout?
【讨论】:
【参考方案2】:感谢您的回复,我找到了修改代码的解决方案,
我在片段的父布局中启用了tools:showIn
属性,我将其移至视图页面,它之前嵌入在主机活动中,但 lint 没有捕捉到它,这有点令人惊讶。
【讨论】:
【参考方案3】:我通过简单地将这一行插入应用程序主题(应用程序主题通常放在styles.xml中)解决了这个渲染问题。
[SDK 28]
<style name="AppTheme">
<item name="coordinatorLayoutStyle">@style/Widget.Support.CoordinatorLayout</item>
</style>
[SDK 27]
<style name="AppTheme">
<item name="coordinatorLayoutStyle">@style/Widget.Design.CoordinatorLayout</item>
</style>
正如@Chris 所建议的那样。如果 IDE 在 Widget.Support 或 Widget.Design 中没有找到 CoordinatorLayout,只需开始输入“CoordinatorLayout”,它应该会给你一些选项。
【讨论】:
在这上面浪费了几个小时。你知道为什么会这样吗?以前没问题,突然间 Android 有时很奇怪 eyeroll 感谢这为我解决了这个问题。 谢谢。 Android Studio 需要这个是荒谬的。 对你有好处,它发生在我启动 Hello World 应用程序时:D 意味着他们引入了一个内置错误 :)) 如果它说它不存在,试着输入开始输入“Coord”,它应该会给你一些选择。我的是@style/Widget.Support.CoordinatorLayout
【参考方案4】:
<style name="Theme.Shrine" parent="Theme.MaterialComponents.Light.NoActionBar">
<item name="coordinatorLayoutStyle">@style/Widget.Support.CoordinatorLayout</item>
</style>
添加您的材料主题。
【讨论】:
在我的 28 alpha 支持库中无法识别。 我必须这样做才能让我的工作。使用 Android Studio intellisense 找到它并开始输入“Coord”【参考方案5】:我也遇到了同样的问题。从布局预览窗口更改主题对我没有任何帮助。
解决方案:我将build.gradle(app)
更新为:
dependencies
implementation 'com.android.support:appcompat-v7:27.0.2'
implementation 'com.android.support:design:27.0.2'
还有一件事:
compileSdkVersion 27
targetSdkVersion 27
【讨论】:
或者保留在 SDK 28 上,而是将支持库版本从28.0.0-alpha3
降级到 28.0.0-alpha1
,如此答案 ***.com/a/51091869/1488656 中所建议的那样
这个是为我做的【参考方案6】:
我认为这是 android studio 3.0+ 中的常见问题, 希望他们会在下一次更新中修复它。在 Android Studio Preview 3.2 中它运行良好。 Download Android Studio Preview
【讨论】:
【参考方案7】:顺便说一句,在 Android Studio 的设计视图中,如果我将以下内容添加到 styles.xml 文件中:
<style name="Coordinator">
<item
name="coordinatorLayoutStyle">@style/Widget.Design.CoordinatorLayout</item>
</style>
并将以下内容添加到布局的 xml 资源文件中的 CoordinatorLayout
<android.support.design.widget.CoordinatorLayout
android:theme="@style/Coordinator"
android:orientation="vertical"
android:id="@+id/sample_layout_id"
android:layout_
android:layout_
android:background="@drawable/sample_background"
tools:theme="@style/Coordinator">
那么,至少设计视图停止生成缺少的 coordinatorLayoutStyle 错误。
【讨论】:
您好,请尝试提及为什么它不起作用。以及您建议的更改为什么会有所作为。 由于 Android Studio 错误而无法正常工作。【参考方案8】:implementation 'com.android.support:appcompat-v7:28.0.0-alpha3'
在
build.gradle
(module) 将 alpha 3 更改为 alpha 1。同步,你应该很高兴。我花了将近一天的时间试图弄清楚这一点。这些答案都不适合我。希望这会有所帮助
【讨论】:
我不得不将实现 'com.android.support:design:28.0.0-alpha3' 也更改为 alpha1【参考方案9】:不幸的是,当您创建新项目时,新的 SDK 28 会在 Android Studio 上引入此错误。
如何解决:
检查您的build.gradle
(模块:app) 文件并更改:
compileSdkVersion 28
targetSdkVersion 28
收件人:
compileSdkVersion 27
targetSdkVersion 27
另外,请确保您使用的是正确的依赖版本:
implementation 'com.android.support:appcompat-v7:27.1.1'
implementation 'com.android.support:design:27.1.1'
【讨论】:
或者保留在 SDK 28 上,而是将支持库版本从28.0.0-alpha3
降级到 28.0.0-alpha1
,如此答案 ***.com/a/51091869/1488656 中所建议的那样
就是这样,将SDK 28改为27并同步Gradle解决了问题。
正如@Livven 所建议的,支持库 28.0.0-alpha3 存在一些问题。【参考方案10】:
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
<item name="coordinatorLayoutStyle">@style/Widget.Design.CoordinatorLayout</item>
</style>
只需将 coodrinatorLayoutStyle 作为一个项目添加到 style.xml 中,它就对我有用。
【讨论】:
【参考方案11】:我的 Android Studio 版本 3.1.3。 我正在卸载所有 SDK 版本 28。步骤是打开 SDK 管理器 > SDK 平台 > 显示包详细信息 > 取消勾选 SDK 28 > 应用并创建新项目。
【讨论】:
【参考方案12】:对于 Android Studio 3.1.4 用户: 我已经尝试过标记答案,但它对我不起作用。 插入这一行:
<style name="AppTheme.NoActionBar">
<item name="coordinatorLayoutStyle">@style/Widget.Design.CoordinatorLayout</item>
</style>
进入应用程序主题并不能解决渲染问题,所以我撤消了该更改。
解决方案: 我在 build.gradle(Module:app) 文件中进行了这些更改:
更改前:
android
compileSdkVersion 28
defaultConfig
targetSdkVersion 28
dependencies
implementation 'com.android.support:appcompat-v7:28.0.0-rc01'
implementation 'com.android.support:design:28.0.0-rc01'
改动后:
android
compileSdkVersion 27
defaultConfig
targetSdkVersion 27
dependencies
implementation 'com.android.support:appcompat-v7:27.1.1'
implementation 'com.android.support:design:27.1.1'
它非常适合我。希望对您有用。
【讨论】:
Google 是否有可能发布 RC 而我们仍然需要使用 27?【参考方案13】:我有同样的问题,但在 Android studio 3.1.4 上
所以,起初我在 build.gradle 中做了以下操作
替换这个:
实现'com.android.support:appcompat-v7:28.0.0-rc01'
实现'com.android.support:design:28.0.0-rc01'
实现'com.android.support:support-v4:28.0.0-rc01'
这样:
实现'com.android.support:appcompat-v7:28.0.0-alpha1'
实现'com.android.support:design:28.0.0-alpha1'
实现'com.android.support:support-v4:28.0.0-alpha1'
但不知何故,在项目重建后,问题再次出现。
所以,我走了这条路:
这是我的项目 gradle.build
buildscript
ext.kotlin_version = '1.2.41'
ext.android_support = '27.1.1'
repositories
google()
jcenter()
dependencies
classpath 'com.android.tools.build:gradle:3.1.4'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
allprojects
repositories
google()
jcenter()
maven url "https://jitpack.io"
task clean(type: Delete)
delete rootProject.buildDir
这里是 app build.gradle
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
apply plugin: 'kotlin-kapt'
android
compileSdkVersion 27
defaultConfig
applicationId "*****.******"//Replace with your own ID
minSdkVersion 16
targetSdkVersion 27
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
buildTypes
release
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
compileOptions
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
dependencies
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
implementation 'com.android.support:appcompat-v7:27.1.1'
implementation 'com.android.support:design:27.1.1'
implementation 'com.android.support:support-v4:27.1.1'
implementation 'com.android.support.constraint:constraint-layout:1.1.0'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.2'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
这解决了我的问题
谢谢
【讨论】:
【参考方案14】:只需更改实现 'com.android.support:appcompat-v7:28.0.0-alpha3' 和 'com.android.support:design:28.0.0-alpha3' 到 alpha 1。 我就是这样解决问题的。
【讨论】:
【参考方案15】:我会发布一个答案 其他答案可能有效,但没有人应该需要下载预览版并且在没有操作栏的情况下进行 Material Design 不是开始使用 Android Studio 开发应用程序的方式 我们的 Android Studio 版本是 3.1.4 我们的默认 API 是 28 我们的修复是降级到 API 26,您可以通过单击 File -> Project Structure 然后突出显示 app 在 Properties 选项卡下将 Compile Sdk 版本更改为 API 26 现在单击 Falavors 选项卡并更改 Target Sdk 版本到 26 然后在 build.gradle(module:app) 中添加这些更改
implementation 'com.android.support:appcompat-v7:27.0.0'
implementation 'com.android.support:recyclerview-v7:27.1.1'
implementation 'com.android.support:cardview-v7:27.1.1'
我想人们总是可以证明谷歌这个缓慢的 FIX 是为了学习使用工具栏
【讨论】:
【参考方案16】:我在 IDE 中更新所有 SDK 工具并将 Android Studio 更新到 3.2.1 时解决了这个问题
【讨论】:
【参考方案17】:它对我有用,试试吧
compileSdkVersion 28
defaultConfig
minSdkVersion 16
targetSdkVersion 28
implementation 'com.android.support:appcompat-v7:28.0.0'
implementation 'com.android.support:design:28.0.0'
【讨论】:
【参考方案18】:这是 sdk 28 问题
检查您的 build.gradle(模块:app)文件并进行更改:
compileSdkVersion 28
targetSdkVersion 28
收件人:
compileSdkVersion 27
targetSdkVersion 27
【讨论】:
以上是关于在当前主题中找不到样式“coordinatorLayoutStyle”的主要内容,如果未能解决你的问题,请参考以下文章
在当前主题中找不到样式“coordinatorLayoutStyle”
Android Material Design:在当前主题中找不到样式“toolbarStyle”
在当前主题中找不到“@attr/shapeAppearanceSmallComponent”