Я новичок в разработке Android, так что извините, если я задам несколько глупых вопросов, но я действительно не могу понять, почему всякий раз, когда я переключаюсь с относительного макета или линейного на DrawerLayout, мое представление дизайна становится пустым и только говорит: «android .... DrawerLayout ".i теряют все текстовые поля кнопок, все это исчезает! Я добавил все зависимости, необходимые для его использования. Все, что мне нужно в этом макете ящика, - это добавить вид навигации на мой главный экран. Я пробовал, но он по-прежнему ничего не отображается в представлении дизайна, поэтому я не могу правильно разложить вещи, не видя, как это будет выглядеть! Любая помощь будет очень признательна!
введите описание изображения здесь
<?xml version = "1.0" encoding = "utf-8"?>
<!-- Use DrawerLayout as root container for activity -->
<android.support.v4.widget.DrawerLayout xmlns:android = "http://schemas.android.com/apk/res/android"
xmlns:app = "http://schemas.android.com/apk/res-auto"
xmlns:tools = "http://schemas.android.com/tools"
android:id = "@+id/drawer_layout"
android:layout_width = "match_parent"
android:fitsSystemWindows = "true"
android:layout_height = "match_parent">
<!-- Layout to contain contents of main body of screen (drawer will slide over this) -->
<LinearLayout
android:layout_width = "match_parent"
android:layout_height = "match_parent"
android:orientation = "vertical">
<android.support.v7.widget.CardView
android:id = "@+id/cardView"
android:layout_width = "wrap_content"
android:layout_height = "wrap_content"
android:backgroundTint = "#CC809fff"
android:padding = "10dp">
<ImageView
android:id = "@+id/weatherView"
android:layout_width = "wrap_content"
android:layout_height = "wrap_content"
android:adjustViewBounds = "true"
android:clickable = "false"
android:contextClickable = "true"
android:padding = "10dp"
android:src = "@drawable/weather" />
<View
android:layout_width = "wrap_content"
android:layout_height = "wrap_content"
android:backgroundTint = "@color/cardview_dark_background"
android:padding = "11dp"
android:visibility = "visible" />
<TextView
android:id = "@+id/textView4"
android:layout_width = "wrap_content"
android:layout_height = "wrap_content"
android:gravity = "center"
android:padding = "0dp"
android:text = "Weather"
android:textColor = "@android:color/white"
android:textSize = "20dp"
android:textStyle = "bold" />
</android.support.v7.widget.CardView>
<android.support.v7.widget.CardView
android:id = "@+id/cardView2"
android:layout_width = "wrap_content"
android:layout_height = "wrap_content"
android:backgroundTint = "#CC809fff"
android:padding = "10dp">
<ImageView
android:layout_width = "wrap_content"
android:layout_height = "wrap_content"
android:padding = "10dp"
android:src = "@drawable/news" />
<View
android:layout_width = "wrap_content"
android:layout_height = "wrap_content"
android:outlineAmbientShadowColor = "#ff3300
"
android:visibility = "visible">
</View>
<TextView
android:id = "@+id/textview5"
android:layout_width = "wrap_content"
android:layout_height = "wrap_content"
android:gravity = "center"
android:padding = "0dp"
android:text = "News"
android:textColor = "#ffffff"
android:textSize = "20dp"
android:textStyle = "bold" />
</android.support.v7.widget.CardView>
<android.support.v7.widget.CardView
android:id = "@+id/cardView3"
android:layout_width = "wrap_content"
android:layout_height = "wrap_content"
android:backgroundTint = "#CC000000"
android:padding = "5dp">
<ImageView
android:layout_width = "wrap_content"
android:layout_height = "wrap_content"
android:padding = "3dp"
android:src = "@drawable/events_icon" />
<View
android:layout_width = "wrap_content"
android:layout_height = "wrap_content">
</View>
<TextView
android:id = "@+id/eventsTextfield"
android:layout_width = "wrap_content"
android:layout_height = "wrap_content"
android:gravity = "center"
android:padding = "10dp"
android:text = "Events"
android:textColor = "@color/cardview_light_background"
android:textSize = "20dp"
android:textStyle = "bold" />
</android.support.v7.widget.CardView>
<android.support.v7.widget.CardView
android:id = "@+id/cardView4"
android:layout_width = "wrap_content"
android:layout_height = "wrap_content"
android:backgroundTint = "#CC000000"
android:padding = "5dp">
<ImageView
android:layout_width = "wrap_content"
android:layout_height = "wrap_content"
android:padding = "5dp"
android:src = "@drawable/trending_icon" />
<View
android:layout_width = "wrap_content"
android:layout_height = "wrap_content">
</View>
<TextView
android:id = "@+id/secondview"
android:layout_width = "wrap_content"
android:layout_height = "wrap_content"
android:gravity = "center"
android:padding = "10dp"
android:text = "Hottest"
android:textColor = "@color/cardview_light_background"
android:textSize = "20dp"
android:textStyle = "bold" />
</android.support.v7.widget.CardView>
</LinearLayout>
<!-- Container for contents of drawer - use NavigationView to make configuration easier -->
<android.support.design.widget.NavigationView
android:id = "@+id/nav_view"
android:layout_width = "wrap_content"
android:layout_height = "wrap_content"
android:fitsSystemWindows = "true"
app:menu = "@menu/drawer_view" />
</android.support.v4.widget.DrawerLayout>
MY DEPENDENCIES ARE THE FOLLOWING:
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.android.support:design:28.0.0'
implementation 'com.android.support:appcompat-v7:28.0.0'
implementation 'com.android.support.constraint:constraint-layout:1.1.3'
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'
implementation 'com.android.support:support-v4:28.0.0'
}
--------- BUILD.GRADLE:PROJECT---------
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
repositories {
google()
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.1.4'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
allprojects {
repositories {
google()
jcenter()
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
пожалуйста, поделитесь своим проектом build.gradle
Можете ли вы попробовать изменить тему с верхней панели над предварительным просмотром, в настоящее время AppTheme существует, попробуйте изменить
Также удалите navgationView и проверьте
Ошибка: «Не удалось найти стиль cardViewStyle в текущей теме».
В большинстве случаев это обычно из-за проблем с кешем студии Android. Вы можете попытаться аннулировать и перезапустить Android Studio, перейдя по ссылке:
File->Invalide Caches / Restart.
После того, как вы добавили все зависимости, это должно решить вашу проблему.
Надеюсь, это поможет.
Если вы хотите использовать CardView, вы должны указать его зависимость Добавить эту зависимость
implementation 'com.android.support:cardview-v7:28.0.0'
Сделал это. но, похоже, ничто не меняет мое представление дизайна, но когда я запускаю приложение на своем телефоне, оно отображает все, что я просто пытаюсь заставить работать в представлении дизайна. посмотри картинку, которую я только что загрузил
измените тему на панели, где вы видите APPTHEME, измените ее на другую тему и попробуйте
Я просто пытаюсь это сделать, но то, что он делает, меняет цвет экрана, а не похоже, что меняет содержимое, такое как кнопки или изображения, которые я вставил. Это так странно, что я никогда не сталкивался с этой проблемой, пока не начал использовать drawerLayout.
для просмотра других элементов измените видимость NavigationView на visibility = Gone
Я думаю, что это может быть ошибка в моей версии студии Android, потому что я нашел этот пост stackoverflow.com/questions/52220326/…, в котором была аналогичная проблема. Моя версия студии Android - "Android Studio 3.1.4", построенная 23 18 июля.
Проблема решена! Я запустил новое обновление Android Studio, и теперь оно работает! Android studio 3.1.4 имеет проблемы с отрисовкой с помощью drawerLayout! Спасибо всем!
Код есть. Я добавил зависимости внизу. Спасибо