在应用条中添加向上导航

如果应用包含一个活动层次结构,可以在应用条上启用向上返回按钮,利用这个层次关系可以在应用中导航。
举个栗子,在这个应用条中MainActivity包含一个动作项,它会启动第二个活动OrderActivity,如果启动了OrderActivity应用条中的向上按钮,用户通过单击这个按钮就能返回到MainActivity。
听上去这好像使用后退按钮的效果是一样的,实际上使用后退按钮时,用户会根据已完成的活动历史后退,向上按钮则不同,纯粹基于应用的层次结构。如果你的应用包含大量活动,实现向上按钮会为用户提供一种快捷而简单的方法返回到活动的父活动,而无需一直按后退键。

一、设置活动的父活动
在AndroidManifest.xml中修改OrderActivity活动的属性:

<activity
    android:name=".OrderActivity"
    android:label="@string/create_order"
    android:parentActivityName=".MainActivity">
    <meta-data
        android:name="android.support.PARENT_ACTIVITY"
        android:value=".MainActivity"/>
</activity>

只有在支持API16以下的应用时才需要增加meta-data元素,这里增加这个元素指示为了让你了解这种做法,另外在代码中包含这个元素也没有什么坏处。

二、增加向上按钮
要在活动代码中启用向上按钮,首先使用活动的getSupportActionBar()方法得到应用条的一个引用。这会返回一个ActionBar类型的对象,然后调用setDefaultDisplayHomeAsUpEnabled方法,传入值true。修改OrderActivity.java代码如下:

package com.hfad.bitsandpizzas;

import androidx.appcompat.app.ActionBar;
import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.widget.Toolbar;

import android.annotation.SuppressLint;
import android.os.Bundle;

public class OrderActivity extends AppCompatActivity {

    @SuppressLint("RestrictedApi")
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_order);
        Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);
        //需要使用支持库中的工具条
        ActionBar actionBar = getSupportActionBar();
        //启用向上按钮,尽管我们要用一个工具条作为应用条
        actionBar.setDefaultDisplayHomeAsUpEnabled(true);
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值