我想为除主活动之外的所有活动设置一个带有后退箭头的自定义工具栏(转到上一个活动,在这种情况下,该活动始终返回主活动。)>
从几篇文章中读到,我创建了一个自定义工具栏活动,下面是代码:
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”。
我想为除主活动之外的所有活动设置一个带有后退箭头的自定义工具栏(以转到上一个活动,在这种情况下始终返回主活动)。从几个...
如果您唯一需要的是后退按钮,则无需使用自定义工具栏。
这是因为在ToolbarBackArrow
中先设置布局,然后在VisionMission
中重新设置布局,并且工具栏的旧布局被另一个对setContentView
的调用所代替。要获得所需的结果,请使用: