所有活动的自定义工具栏是否无法正常工作?

问题描述 投票:1回答:2

我想为除主活动之外的所有活动设置一个带有后退箭头的自定义工具栏(转到上一个活动,在这种情况下,该活动始终返回主活动。)>

从几篇文章中读到,我创建了一个自定义工具栏活动,下面是代码:

activity_toolbar_back_arrow.xml

<LinearLayout
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="match_parent"
android:orientation="vertical"
tools:context=".ToolbarBackArrow">

<androidx.appcompat.widget.Toolbar
    android:layout_width="match_parent"
    android:layout_height="?attr/actionBarSize"
    android:background="@color/colorPrimary"
    app:title="My First App"
    android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
    app:popupTheme="@style/ThemeOverlay.AppCompat.Light"
    android:id="@+id/toolbar_back_arrow"
    app:contentInsetLeft="0dp"
    app:contentInsetStart="0dp"
    app:contentInsetStartWithNavigation="0dp"/>
</LinearLayout>

ToolbarBackArrow.class

import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import androidx.appcompat.widget.Toolbar;

public class ToolbarBackArrow extends AppCompatActivity {

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

    Toolbar toolbar = findViewById(R.id.toolbar_back_arrow);
    setSupportActionBar(toolbar);

    getSupportActionBar().setDisplayHomeAsUpEnabled(true);
}
}

现在创建另一个活动,以扩展上述自定义活动:VisionMission.java

import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.widget.Toolbar;
import android.os.Bundle;

public class VisionMission extends ToolbarBackArrow {

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

}
}

在activity_vision_mission.xml中,我有一些特定于该活动的代码。

根据解决方案,我读到这应该在VisionMission活动中创建一个工具栏,但事实并非如此。我想念什么?在清单中,我将所有活动的主题都设置为“无ActionBar”。

我想为除主活动之外的所有活动设置一个带有后退箭头的自定义工具栏(以转到上一个活动,在这种情况下始终返回主活动)。从几个...

android android-toolbar
2个回答
1
投票

如果您唯一需要的是后退按钮,则无需使用自定义工具栏。


1
投票

这是因为在ToolbarBackArrow中先设置布局,然后在VisionMission中重新设置布局,并且工具栏的旧布局被另一个对setContentView的调用所代替。要获得所需的结果,请使用:

© www.soinside.com 2019 - 2024. All rights reserved.