如何添加工具栏?
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
在查看了一些类似的问题后,我找不到 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