无法找到风格' coordinatorLayoutStyle'在当前主题

时间:2018-03-15 06:00:42

标签: android android-layout android-studio android-coordinatorlayout

我使用的是最新版本的android studio(3.0),以及最新的构建工具(27)和类似的API级别。

布局不会在设计选项卡中呈现,而且会导致很多麻烦,特别是我使用协调器布局。

如何解决这个问题?

18 个答案:

答案 0 :(得分:104)

我通过简单地将这一行插入应用程序主题解决了这个渲染问题(应用程序主题通常放在 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”,它应该会给你一些选项。

答案 1 :(得分:35)

不幸的是,创建新项目时,新的 SDK 28 会在Android Studio上引入此错误。

如何解决:

检查您的build.gradle (模块:应用)文件并更改:

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'

答案 2 :(得分:11)

implementation 'com.android.support:appcompat-v7:28.0.0-alpha3'build.gradle(模块)将alpha 3更改为alpha1。同步,您应该一切顺利。我花了将近一天的时间来解决这个问题。这些答案都不适合我。希望对您有帮助

答案 3 :(得分:7)

我也遇到了同样的问题。没有什么比从布局预览窗口更改主题更能帮助我了。

解决方案:我使用以下内容更新了我的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

答案 4 :(得分:6)

    <div class="perspective">
      <div class="cube">
        <div class="cube__face cube__face--front"></div>
        <div class="cube__face cube__face--back"></div>
        <div class="cube__face cube__face--right"></div>
        <div class="cube__face cube__face--left"></div>
        <div class="cube__face cube__face--top"></div>
        <div class="cube__face cube__face--bottom"></div>
      </div>
    </div>

添加您的素材主题。

答案 5 :(得分:6)

对于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'
}

对我来说效果很好。希望会有用。

答案 6 :(得分:5)

感谢您的回复,我找到了修补代码的解决方案,

我在片段的父布局中启用了tools:showIn属性,我将其移至viewpager,它之前已嵌入到主机活动中,但是lint没有抓住它,这有点令人惊讶。< / p>

答案 7 :(得分:2)

我认为这是android studio 3.0+中的常见问题, 希望他们会在下次更新时修复它。在Android Studio Preview 3.2中,它可以正常工作。 Download Android Studio Preview enter image description here

答案 8 :(得分:1)

顺便说一句,在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_width="match_parent"
    android:layout_height="match_parent"
    android:background="@drawable/sample_background"
    tools:theme="@style/Coordinator">

然后,至少,设计视图停止生成缺少的coordinatorLayoutStyle错误。

答案 9 :(得分:1)

我的Android Studio版本3.1.3。
我正在卸载所有SDK版本28。
步骤是打开SDK管理器> SDK平台>显示软件包详细信息>取消选中SDK 28>应用并创建新项目。

答案 10 :(得分:1)

我有同样的问题,但是在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'
}

这解决了我的问题

谢谢

答案 11 :(得分:1)

我将发布一个答案其他答案可能有用,但是没有人需要下载预览版并且没有操作栏就可以进行材质设计,这不是开始使用Android Studio开发应用的方式
我们的Android Studio版本是3.1.4 我们的默认API是28 我们的解决方案是将其降级为API 26,方法是单击文件->项目结构,然后突出显示 app ,在“属性”选项卡下,将Comped Sdk版本更改为API 26,然后单击Falavors TAB并更改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'

我想人们总是可以证明Google的这种慢速FIX来学习使用工具栏

答案 12 :(得分:0)

这是sdk 28问题

检查您的build.gradle(模块:应用程序)文件并更改:

compileSdkVersion 28

targetSdkVersion 28

收件人:

compileSdkVersion 27

targetSdkVersion 27

答案 13 :(得分:0)

这可能存在问题:https://issuetracker.google.com/issues/37048767

使用其他版本的Android(比如Android API 22)渲染。

或检查是否有任何拼写错误或无效的XML条目。

请参阅此处:Missing styles. Is the correct theme chosen for this layout?

答案 14 :(得分:0)

它为我工作了

class B : A {
    constructor(longDescription: String, value: Int) : super(longDescription, value)
    constructor(morePrecision: Float, value: Int) : super(morePrecision, value)

    // ...
}

答案 15 :(得分:0)

在IDE中更新所有SDK工具并将Android Studio更新到3.2.1时,我解决了这个问题

答案 16 :(得分:0)

只需更改实现'com.android.support:appcompat-v7:28.0.0-alpha3'和 'com.android.support:design:28.0.0-alpha3'转换为alpha 1。 这就是我解决问题的方式。

答案 17 :(得分:0)

<!-- 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中的一项,它对我有用。