gpt4 book ai didi

android - Back vs. Up - 预期行为

转载 作者:行者123 更新时间:2023-12-04 02:58:00 25 4
gpt4 key购买 nike

导航设计指南解释:

When the previously viewed screen is also the hierarchical parent of the current screen, pressing the Back button has the same result as pressing an Up button—this is a common occurrence.up vs back - navigation guide

我有一个 MainActivity A,它在触摸 NavigationDrawer 中的导航条目时打开另一个 Activity B。 Activity A 在 AndroidManifest 中设置为 Activity B 的父级:android:parentActivityName=".MainActivity"

我关注了这个android documentaion将导航添加到 Activity B。它显示了如何在 Activity B 中实现 onOptionsItemSelected:

override fun onOptionsItemSelected(item: MenuItem): Boolean {
when (item.itemId) {
android.R.id.home -> {
// Respond to the action bar's Up/Home button
NavUtils.navigateUpFromSameTask(this)
return true
}
}
return super.onOptionsItemSelected(item)

当我从 Activity B 返回时,Activity A 的状态被保存并且 NavigationDrawer 被打开。但是,如果我使用向上导航,则会调用 Activity A 的 onCreate() 并且它会丢失其状态(抽屉已关闭等)。

这不是引用的“相同结果”。

当我用简单的 finish() 替换 NavUtils.navigateUpFromSameTask(this) 时,它的行为与按回键相同 - Activity A 的状态被保留。

自然我更喜欢finish的方式。那么预期的行为是什么?这些指南是否相互矛盾或遗漏了什么?

最佳答案

不幸的是,Google 保留文档的时间超过了相关的时间,甚至会发布两个直接相互矛盾的不同文档。

对于“向上”按钮,您的链接显示

The Up button appears in the app bar and is used to navigate within an app based on the hierarchical relationships between screens. [...]

The Back button appears in the system navigation bar and is used to navigate, in reverse chronological order, through the history of screens the user has recently worked with. It is generally based on the temporal relationships between screens, rather than the app's hierarchy.

不过,还有this article ,它说

When the system Back button would not exit your app, such as when you are on your own task and not on the start destination, the Up button should function identically to the system Back button.

那么...您应该相信哪一个?

我断言你应该相信第二个。第一个是几年前发布的;我不知道它的确切年代,但你可以看出它是旧的,因为截图都使用了 Holo 主题。另一方面,第二个是 Android 架构组件的一部分,因此明显较新。一般来说,我会选择最新的文档。

此外,我认为谷歌这么多年来一直说“向上”按钮的工作方式应该与“返回”按钮不同,这是错误的。作为一个花了很多时间思考我的应用程序中的导航问题的人,我知道他们来自哪里,但当 Up 做了一些“不同”的事情时,现实世界的用户总是感到困惑。

因此,当用户按下向上按钮时,我会继续finish() 您的 Activity ,而不用担心您找到的那两篇文章。

关于android - Back vs. Up - 预期行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51992472/

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