Android:多 Pane 布局上操作栏/选项菜单的设计模式

标签 android android-activity menu android-fragments tablet

来自 Android Best Practices API Guide: Supporting Tablets and Handsets :

In some cases, you may have one APK to support both a phone and a tablet. Suppose on a phone you have a ListFragment that shows a list of contacts in Activity A, and then a Details fragment that opens in a new Activity, Activity B, when the user selects a contact.

Now on a tablet, we can take advantage of extra real estate by combining the two Fragments into a single, multi-pane Activity, Activity A.

Fragment Design on Tablets/Phones

再次考虑手机上的应用程序。在 Activity A 中,选项菜单可能会提供“全选”或“同步联系人”操作。长按列表中的项目可能会提供诸如“编辑”或“删除”之类的选项。在 Activity B 中,选项菜单也可以提供“编辑”、“删除”或“收藏”等操作。

但是,我们如何在平板电脑上整合这些选项?我们是否只是将所有选项菜单项合并到一个巨大的菜单 (1) 中?或者我们是否只是丢弃 Activity B 菜单并让用户依赖于长按左侧的项目 (2)?另一种选择是修改详细信息 fragment 以将一些操作添加到详细信息 fragment 本身 (3)。

根据 Android 设计网站,通讯录应用似乎使用了 1 和 3 的组合。看看 http://developer.android.com/design/patterns/multi-pane-layouts.html

那么有推荐的方法吗,还是由开发者决定?

最佳答案

它们都可以进入选项菜单(或者,更好的是,操作栏),假设在 Fragment A 的列表中总是至少选择了一个项目。如果存在 Fragment A 的列表为空或没有选择,那么故事会变得有点复杂,因为 B 的操作栏项目都假定存在选择。理想情况下,您不会将 Fragment B 加载到 Activity 中,直到有一个选择,在这种情况下,Fragment B 的操作栏项目在它们有效之前不会出现。

话虽这么说, fragment B(您的选项 #3)的布局略有不同也是合理的。我怀疑是否值得为“最喜欢的”明星切换,但是,话又说回来,他们没有问我......:-)

我绝对不同意您的选项 #2。您使用多少选项 #1 或 #3(或混合)完全取决于您。

关于Android:多 Pane 布局上操作栏/选项菜单的设计模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10899999/

相关文章:

html - 如何添加水平子菜单?

html - 样式化二级菜单(二级)

Python GUI 菜单问题

java - 错误: open failed: ENOENT (No such file or directory) add gallery image in document pdf

android - 在另一个应用程序 Android 中启动一个应用程序

android - 如何解决这些不匹配问题?

android - 为什么 Activity 中的崩溃不会导致整个应用程序崩溃 - Android

android - 如何定义适用于 720p 和 1080p 屏幕的布局?

java - 没有 anchor 不能使用菜单弹出助手

android - 如果 Activity 的启动模式为 singleInstance,则不会触发 onActivityResult