gpt4 book ai didi

android - 所有 Activity 的自定义工具栏未按预期工作?

转载 作者:行者123 更新时间:2023-11-29 16:28:52 26 4
gpt4 key购买 nike

我想为除主 Activity 之外的所有 Activity 设置一个带后退箭头的自定义工具栏(转到上一个 Activity ,在本例中总是返回主 Activity )。

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

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);
}
}

现在创建了另一个 Activity 来扩展上述自定义 Activity :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 中,我有一些特定于该 Activity 的代码。

根据解决方案,我读到应该在 VisionMission Activity 中创建一个工具栏,但事实并非如此。我错过了什么?在 list 中,我将所有 Activity 的主题设为 No ActionBar。

最佳答案

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

在指定 Activity 的 manifest.xml 文件中,

<activity
android:name="com.example.app_name.A" ...>
...
</activity>
<!-- A child of the main activity -->
<activity
android:name=".B"
android:label="B"
android:parentActivityName="the activity to go on back click" >
<!--android:parentActivityName="com.examle.myparentactivity" -->
<!-- Parent activity meta-data to support 4.0 and lower -->
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="com.example.app_name.A" />
</activity>

它将自动显示具有所需行为的后退按钮。

关于android - 所有 Activity 的自定义工具栏未按预期工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58131211/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com