【Interface&navigation】添加一个行动(47)

您的应用应该可以让用户轻松找到返回应用主屏幕的方式。一种简单的方法是 在应用栏上为除主要活动之外的所有活动提供“ 向上”按钮。当用户选择“ 向上”按钮时,应用程序将导航到父活动。

本课程向您展示如何通过在清单中声明活动的父级并启用应用栏的“ 向上”按钮来向活动 添加“ 向上”按钮。

导航架构组件(目前处于alpha状态)是另一种处理应用程序导航的方法。当用户点击向上按钮时,API可以处理从您应用中的当前屏幕向上导航。要了解更多信息,请参阅 导航架构组件。

声明父活动


要支持活动中的向上功能,您需要声明活动的父级。您可以通过设置android:parentActivityName属性在应用清单中执行此操作 。

该android:parentActivityName属性是在Android 4.1(API级别16)中引入的。要支持使用旧版Android的设备,请定义<meta-data> 名称对的名称 - 值对, "android.support.PARENT_ACTIVITY"值为父活动的名称。

例如,假设您的应用具有名为的主要活动 MainActivity和单个子活动。以下清单代码声明了这两个活动,并指定了父/子关系:

<application ... >
    ...

    <!-- The main/home activity (it has no parent activity) -->

    <activity
        android:name="com.example.myfirstapp.MainActivity" ...>
        ...
    </activity>

    <!-- A child of the main activity -->
    <activity
        android:name="com.example.myfirstapp.MyChildActivity"
        android:label="@string/title_activity_child"
        android:parentActivityName="com.example.myfirstapp.MainActivity" >

        <!-- Parent activity meta-data to support 4.0 and lower -->
        <meta-data
            android:name="android.support.PARENT_ACTIVITY"
            android:value="com.example.myfirstapp.MainActivity" />
    </activity>
</application>

启用向上按钮


要为具有父活动的活动启用“ 向上”按钮,请调用应用栏的setDisplayHomeAsUpEnabled()方法。通常,您会在创建活动时执行此操作。例如,以下onCreate()方法将a设置Toolbar为应用栏 MyChildActivity,然后启用该应用栏的“ 向上”按钮:

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

    // my_child_toolbar is defined in the layout file
    Toolbar myChildToolbar =
        (Toolbar) findViewById(R.id.my_child_toolbar);
    setSupportActionBar(myChildToolbar);

    // Get a support ActionBar corresponding to this toolbar
    ActionBar ab = getSupportActionBar();

    // Enable the Up button
    ab.setDisplayHomeAsUpEnabled(true);
}

你不是要赶在活动的向上动作onOptionsItemSelected()方法。相反,该方法应调用其超类,如响应操作中所示。超类方法通过导航到父活动响应Up选项,如应用清单中指定的那样。

联系我

QQ:94297366
微信打赏:https://pan.baidu.com/s/1dSBXk3eFZu3mAMkw3xu9KQ

公众号推荐:

【Interface&navigation】添加一个行动(47)

猜你喜欢

转载自blog.51cto.com/4789781/2162414