【发布时间】:2019-09-27 09:00:41
【问题描述】:
我想为除主要活动之外的所有活动设置一个带有后退箭头的自定义工具栏(转到上一个活动,在这种情况下始终返回到主要活动)。
从几篇文章中了解到,我创建了一个自定义工具栏活动,代码如下:
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 活动中创建一个工具栏,但事实并非如此。我错过了什么? 在清单中,我已将所有活动的主题设为 No ActionBar。
【问题讨论】:
-
你为什么不做一个单独的布局包含工具栏和
include它在你想要的任何地方 -
我们是否需要通过包含在 xml 和 .java 文件中扩展类或使用 setSupportActionBar() 进行添加?
-
就在 xml 中,包括布局,它就会在那里。您甚至可以在包含的布局中找到视图并对其进行处理。像这样stackoverflow.com/a/4787064/8528047