使用Material Design时没有显示设计预览

时间:2019-06-11 13:34:38

标签: java android android-studio material-design androidx

我将项目迁移到androidx,并使用了材料设计“入门指南”指南。但是,似乎无法正确渲染设计。 MainActivity显示以下输出:

  

java.lang.IllegalArgumentException:此组件上的样式   要求您的应用主题为Theme.AppCompat(或后代)。在   com.google.android.material.internal.ThemeEnforcement.checkTheme(ThemeEnforcement.java:240)     在   com.google.android.material.internal.ThemeEnforcement.checkAppCompatTheme(ThemeEnforcement.java:211)     在   com.google.android.material.internal.ThemeEnforcement.checkCompatibleTheme(ThemeEnforcement.java:146)     在   com.google.android.material.internal.ThemeEnforcement.obtainStyledAttributes(ThemeEnforcement.java:78)     在   com.google.android.material.internal.ScrimInsetsFrameLayout。(ScrimInsetsFrameLayout.java:58)     在   com.google.android.material.navigation.NavigationView。(NavigationView.java:115)     在   com.google.android.material.navigation.NavigationView。(NavigationView.java:111)     在sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native   方法)   sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)     在   sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)     在java.lang.reflect.Constructor.newInstance(Constructor.java:423)     在   org.jetbrains.android.uipreview.ViewLoader.createNewInstance(ViewLoader.java:401)     在   org.jetbrains.android.uipreview.ViewLoader.loadClass(ViewLoader.java:184)     在   org.jetbrains.android.uipreview.ViewLoader.loadView(ViewLoader.java:142)     在   com.android.tools.idea.rendering.LayoutlibCallbackImpl.loadView(LayoutlibCallbackImpl.java:229)     在   android.view.BridgeInflater.loadCustomView(BridgeInflater.java:421)     在   android.view.BridgeInflater.loadCustomView(BridgeInflater.java:432)     在   android.view.BridgeInflater.createViewFromTag(BridgeInflater.java:336)     在   android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:730)     在   android.view.LayoutInflater.rInflate_Original(LayoutInflater.java:863)     在   android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:72)     在android.view.LayoutInflater.rInflate(LayoutInflater.java:837)处   android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:824)     在android.view.LayoutInflater.inflate(LayoutInflater.java:515)处   android.view.LayoutInflater.inflate(LayoutInflater.java:394)位于   com.android.layoutlib.bridge.impl.RenderSessionImpl.inflate(RenderSessionImpl.java:327)     在com.android.layoutlib.bridge.Bridge.createSession(Bridge.java:386)     在   com.android.tools.idea.layoutlib.LayoutLibrary.createSession(LayoutLibrary.java:193)     在   com.android.tools.idea.rendering.RenderTask.createRenderSession(RenderTask.java:450)     在   com.android.tools.idea.rendering.RenderTask.lambda $ inflate $ 3(RenderTask.java:590)     在java.util.concurrent.FutureTask.run(FutureTask.java:266)在   java.util.concurrent.Executors $ RunnableAdapter.call(Executors.java:511)     在java.util.concurrent.FutureTask.run(FutureTask.java:266)在   java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)     在   java.util.concurrent.ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor.java:617)     在java.lang.Thread.run(Thread.java:745)

我可以将其部署在手机上,但设计预览仅显示白/蓝空白屏幕,并带有来自上方的错误消息。我使用的是SDK版本28,将styles.xml主题更改为“ materialcomponents”主题,但没有任何帮助。

我忘记了什么吗?我想知道它是什么组件,需要AppCompat-Theme,因为android studio自动将所有内容转换为androidx,而且我没有任何AppCompat引用。

<?xml version="1.0" encoding="utf-8"?>
        <androidx.drawerlayout.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:layout_height="match_parent"
            android:fitsSystemWindows="true"
            tools:openDrawer="start">

        <include
                layout="@layout/app_bar_main"
                android:layout_width="match_parent"
                android:layout_height="match_parent"/>

        <com.google.android.material.navigation.NavigationView
                android:id="@+id/nav_view"
                android:layout_width="wrap_content"
                android:layout_height="match_parent"
                android:layout_gravity="start"
                android:fitsSystemWindows="true"
                app:headerLayout="@layout/nav_header_main"
                app:menu="@menu/activity_main_drawer"/>

    </androidx.drawerlayout.widget.DrawerLayout>

0 个答案:

没有答案