如何添加工具栏?

How to add the toolbar?

在查看了一些类似的问题后,我找不到 Error inflating class android.support.v7.widget.Toolbar 的原因以及如何修复它。

首先,在我的 main_activity.java 中,我导入了在其他问题中找到的两个 androidx 语句,并为工具栏添加了两行,如图所示 in point 5:

package com.example.tp01_android;
import androidx.annotation.RequiresApi;
import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.widget.Toolbar;
...
import com.google.android.material.floatingactionbutton.FloatingActionButton;
import java.util.ArrayList;

public class MainActivity extends AppCompatActivity {

    final Context context = this;
    private ArrayList<String> itemslistArray = new ArrayList<String>();
    private EditText newItemTextField;
    private ArrayAdapter simpleAdapter;
    private FloatingActionButton fab;

    @RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        // ------------------------------- TOOLBAR -------------------------------------------------
        **Toolbar myToolbar = (Toolbar) findViewById(R.id.my_toolbar);
        setSupportActionBar(myToolbar);**
   }
...

现在在我的 main_activity.xml 中,我在 the point 4

之后添加了我的工具栏
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 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:layout_width="match_parent"
    android:layout_height="wrap_content"
    tools:context=".MainActivity">

    <android.support.v7.widget.Toolbar
        android:id="@+id/my_toolbar"
        android:layout_width="match_parent"
        android:layout_height="?attr/actionBarSize"
        android:background="?attr/colorPrimary"
        android:elevation="4dp"
        android:theme="@style/ThemeOverlay.AppCompat.ActionBar"
        app:popupTheme="@style/ThemeOverlay.AppCompat.Light"/>

    <androidx.constraintlayout.widget.ConstraintLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent">


        <com.google.android.material.floatingactionbutton.FloatingActionButton
            android:id="@+id/fab"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:clickable="true"
            android:focusable="auto"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintHorizontal_bias="0.98"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toTopOf="parent"
            app:layout_constraintVertical_bias="0.389"
            app:srcCompat="@android:drawable/ic_input_add" />

        <EditText
            android:id="@+id/editText2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="28dp"
            android:ems="10"
            android:inputType="textPersonName"
            android:text="Custom list:"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintHorizontal_bias="0.0"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toBottomOf="@+id/listSimple" />


        <ListView
            android:id="@+id/listSimple"
            android:layout_width="397dp"
            android:layout_height="211dp"
            android:gravity="center_horizontal"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toBottomOf="@+id/editText">

        </ListView>

        <ListView
            android:id="@+id/customListView"
            android:layout_width="408dp"
            android:layout_height="294dp"
            android:gravity="center_horizontal"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toBottomOf="@+id/editText2">

        </ListView>

        <EditText
            android:id="@+id/editText"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:ems="10"
            android:inputType="textPersonName"
            android:text="Simple list:" />
    </androidx.constraintlayout.widget.ConstraintLayout>

</RelativeLayout>

我做错了什么或者我应该改变什么?

您的 Toolbar 导入错误。使用 androidx 一个而不是支持的 lib 版本。 在您的 xml 中使用 androidx.appcompat.widget.Toolbar 而不是 android.support.v7.widget.Toolbar

有关详细信息,请参阅 this

您指出的 guide 尚未更新,正在使用旧的支持工件。像处理其他组件一样切换到 androidx.* 版本的工具栏。

main_activity.xml

中使用 androidx.appcompat.widget.Toolbar 而不是 android.support.v7.widget.Toolbar