您的应用应该可以让用户轻松找到返回应用主屏幕的方式。一种简单的方法是 在应用栏上为除主要活动之外的所有活动提供“ 向上”按钮。当用户选择“ 向上”按钮时,应用程序将导航到父活动。
本课程向您展示如何通过在清单中声明活动的父级并启用应用栏的“ 向上”按钮来向活动 添加“ 向上”按钮。
导航架构组件(目前处于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
公众号推荐: