膨胀类androidx.appcompat.widget.toolbar时出错

rqqzpn5f  于 2021-06-29  发布在  Java
关注(0)|答案(2)|浏览(610)

我试着在我的应用程序中使用工具栏,我得到这样的消息:“错误膨胀类androidx.appcompat.widget.toolbar”。如果有人发现我的问题,我很高兴(使用最新版本的android studio)
xml格式:

<androidx.appcompat.widget.Toolbar
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:background="#00008577"
        android:minHeight="?actionBarTheme"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:navigationIcon="@drawable/main"
        android:id="@+id/toolbar"/>

java 语:

private Toolbar toolbar;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        findViews();
        setSupportActionBar(toolbar);

    }

    private void findViews() {
        drawer_layout = findViewById(R.id.drawer_layout);
        nav_view = findViewById(R.id.nav_view);
        toolbar = findViewById(R.id.toolbar);
    }

风格: <style name="AppTheme" parent="Theme.MaterialComponents.DayNight.NoActionBar"> 收到异常

java.lang.RuntimeException: Unable to start activity ComponentInfo{com.or.ourshoppinglist/com.or.ourshoppinglist.MainActivity}: android.view.InflateException: Binary XML file line #28: Binary XML file line #28: Error inflating class <unknown>
zc0qhyus

zc0qhyus1#

添加了我的整个xml

<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:context=".MainActivity"
    tools:openDrawer="start">

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

<ScrollView
    android:layout_width="match_parent"
    android:layout_height="match_parent">
<androidx.constraintlayout.widget.ConstraintLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#FFFFFF">

    <androidx.appcompat.widget.Toolbar
        android:layout_width="100dp"
        android:layout_height="wrap_content"
        android:background="#00008577"
        android:minHeight="?actionBarTheme"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:navigationIcon="@drawable/main"
        android:id="@+id/toolbar"/>

</androidx.constraintlayout.widget.ConstraintLayout>

</ScrollView>

</androidx.drawerlayout.widget.DrawerLayout>

java 语:

package com.or.ourshoppinglist;

import androidx.appcompat.app.ActionBarDrawerToggle;
import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.widget.Toolbar;
import androidx.drawerlayout.widget.DrawerLayout;

import android.os.Bundle;

import com.google.android.material.navigation.NavigationView;

public class MainActivity extends AppCompatActivity {

    private DrawerLayout drawer_layout;
    private NavigationView nav_view;
    private Toolbar toolbar;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        findViews();
        setSupportActionBar(toolbar);

        ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(this, drawer_layout,toolbar,R.string.navigation_drawer_open,R.string.navigation_drawer_close);
        drawer_layout.addDrawerListener(toggle);
        toggle.syncState();
    }

    private void findViews() {
        drawer_layout = findViewById(R.id.drawer_layout);
        nav_view = findViewById(R.id.nav_view);
        toolbar = findViewById(R.id.toolbar);
    }
}
gblwokeq

gblwokeq2#

嗨,沈诺亚,欢迎来到stackoverflow。
首先,导入工具栏可能有问题。自从androix版本问世以来,现在有两个版本的工具栏:

androidx.appcompat.widget.Toolbar

android.support.v7.widget.Toolbar

因此,首先检查java.class中的导入,看看是否导入了正确的版本:

androidx.appcompat.widget.Toolbar

除此之外,为什么工具栏宽度等于0?

<androidx.appcompat.widget.Toolbar
    android:layout_width="0dp"

此外,要使用工具栏,您需要将其粘贴到依赖项中的生成渐变文件中:

implementation 'androidx.appcompat:appcompat:1.0.0'

如果这不能解决任何问题,请提供整个xml、java.class和异常的完整堆栈跟踪。

相关问题