我目前正在将iPhone应用程序移植到Android中。 iPhone应用程序在屏幕底部有一个自定义的全局导航菜单,当把它带到Android时,建议用通用选项菜单(通过设备上的选项键调用)替换这个自定义菜单给它一个更原生的Android外观。
问题是菜单本身有几层(例如A,B,C三个主要选项,以及A1,A2,A3等子选项)。我环顾四周,但没有在Android应用程序上看到这种多级选项菜单,所以我正在寻找一些关于如何最好地实现这一目标的指南。
我已经看到了一些关于自定义选项菜单的问题,比如这个; Android: customize application's menu (e.g background color);他们似乎暗示原生框架不支持很多选项。
我是否应该在选项菜单中查看一些黑客攻击(这是一个好主意?),或者查看其他一些修改应用程序流的方法?试图了解在Android上保持一致用户体验的最佳方式,同时降低iPhone应用程序的变化程度。
谢谢!
答案 0 :(得分:9)
我环顾四周但是还没有在Android应用上看到这种多级选项菜单,所以我正在寻找一些关于如何最好地实现这一目标的指南。
Options menus support sub-menus, but only one level deep(即菜单可以有子菜单,但子菜单不能有子菜单。)
答案 1 :(得分:1)
如果您真的需要(并且想要违反有关菜单深度的Android平台标准),那么您可以通过对菜单的每个嵌套级别使用AlertDialog with lists轻松实现此功能。视觉上看起来与选项菜单完全相同。
答案 2 :(得分:1)
我做过类似于香蕉建议的事情。我只想添加限制背后的原因是需要支持的无数个数字或设备和屏幕分辨率。多个嵌套菜单在平板电脑上可能看起来不错,但在5英寸屏幕上看起来不是很好,所以我们需要牢记这一点。
答案 3 :(得分:0)
对我来说,添加
android:onClick="onOptionsItemSelected"
嵌套菜单项。