Не удалось найти стиль координатор LayoutStyle в текущей теме
Я использую последнюю версию Android Studio (3.0), а также последние инструменты для сборки (27) и аналогичный уровень API.
Макет не отображается на вкладке "Дизайн", и это вызывает много проблем, особенно из-за того, что я использую макет координатора.
Как мне обойти эту проблему?
17 ответов
Я решил эту проблему рендеринга, просто вставив эту строку в тему приложения (тема приложения обычно помещается в 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 не находит CoordinatorLayout в Widget.Support или Widget.Design, просто начните вводить "CoordinatorLayout", и он должен дать вам несколько вариантов.
Оказывается, новый 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'
implementation 'com.android.support:appcompat-v7:28.0.0-alpha3'
вbuild.gradle
(модуль) измените альфа 3 на альфу 1. синхронизация, и вы должны быть в порядке. Я провел почти день, пытаясь понять это. ни один из этих ответов не работал для меня. надеюсь это поможет
Я также столкнулся с той же проблемой. Ничто, как изменение темы из окна предварительного просмотра макета, не помогло мне.
Решение: я обновил свой 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
Для пользователей 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'
}
У меня это сработало отлично. Надеюсь, что это будет полезно.
<style name="Theme.Shrine" parent="Theme.MaterialComponents.Light.NoActionBar">
<item name="coordinatorLayoutStyle">@style/Widget.Support.CoordinatorLayout</item>
</style>
Добавьте в свой материал тему.
Спасибо за ответ, я нашел решение повозиться с кодом,
я имел tools:showIn
Атрибут включен в родительском макете фрагмента, который я переместил в viewpager, он был ранее встроен в действие хоста, хотя lint не уловил его, что немного удивительно.
Я думаю, что это общая проблема в Android Studio 3.0+, надеюсь, они исправят это в следующем обновлении. В Android Studio Preview 3.2 все работает нормально. Скачать Android Studio Preview
Кроме того, в режиме конструктора Android Studio, если я добавлю следующее в файл styles.xml:
<style name="Coordinator">
<item
name="coordinatorLayoutStyle">@style/Widget.Design.CoordinatorLayout</item>
</style>
и добавьте следующее к CoordinatorLayout в файле ресурсов xml макета
<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">
тогда, по крайней мере, представление конструктора перестает генерировать отсутствующую ошибку ordinatorLayoutStyle.
Моя Android студия версии 3.1.3.
Я работаю с деинсталлировать ВСЕ SDK версии 28.
Шаг - Откройте SDK Manager > Платформы SDK> Показать сведения о пакете> Untick SDK 28 > применить и создать новый проект.
У меня такая же проблема но на андроид студии 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
}
И вот приложение 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'
}
И это решит мою проблему
Спасибо
Я опубликую ответ. Другие ответы могут работать, но никому не нужно загружать предварительную версию, а создание материалов без панели действий не позволяет начать разработку приложений с Android Studio.
Наша версия Android Studio - 3.1.4. Наш API по умолчанию - 28. Наше решение FIX - перейти на API. 26 Чтобы сделать это, нажмите "Файл" -> "Структура проекта", затем выделите приложение. В вкладке "Свойства" выберите "Скомпилировать версию SDK для API". 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'
Я думаю, что всегда можно оправдать этот медленный FIX от Google, чтобы научиться использовать панель инструментов
Я решаю эту проблему, когда обновляю все инструменты SDK в IDE и обновляю Android Studio до 3.2.1
Просто измените реализацию 'com.android.support:appcompat-v7:28.0.0-alpha3' и 'com.android.support:design:28.0.0-alpha3' на альфа 1. Вот так я решил проблему.
Это работает для меня, попробуйте
compileSdkVersion 28
defaultConfig {
minSdkVersion 16
targetSdkVersion 28
}
implementation 'com.android.support:appcompat-v7:28.0.0'
implementation 'com.android.support:design:28.0.0'
Это выпуск SDK 28
Проверьте файл build.gradle (Модуль: приложение) и измените:
compileSdkVersion 28
targetSdkVersion 28
Для того, чтобы:
compileSdkVersion 27
targetSdkVersion 27
<!-- 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, и это сработало для меня.
Это может быть существующая проблема: https://issuetracker.google.com/issues/37048767
Рендеринг с использованием других версий Android (скажем, Android API 22).
Или проверьте на наличие опечаток или недействительных записей XML.
Обратитесь сюда: Отсутствующие стили. Правильная ли тема выбрана для этого макета?