【发布时间】:2014-10-22 07:57:49
【问题描述】:
背景
setListNavigationCallbacks用于让用户通过ActionBar轻松切换当前屏幕的不同视图,如图here和here。
问题
我注意到它在 API21 (Lollipop) 中已被弃用,the documentation 所说的只是寻找其他导航解决方案,但没有说明什么是最适合同一点的解决方案:
此方法已弃用。操作栏导航模式已弃用 并且内联工具栏操作栏不支持。考虑使用其他 常见的navigation patterns。
与此函数相关的所有其他函数/类也已弃用,例如setNavigationMode、OnNavigationListener、ActionBar.NAVIGATION_MODE_LIST。
我尝试过的
导航抽屉用于不同屏幕的导航,而不是同一屏幕的不同视图。
添加一个操作项,提供一种在模式之间切换的方式,但这有点奇怪...
使用 ViewPager,但这也很奇怪,因为它不会真正切换视图,而且需要更多空间。
使用标签,但我认为这在某些方面也已被弃用,而且这样会占用更多空间。
问题
这种导航方式的最佳替代方案应该是什么?
【问题讨论】:
-
我现在不会太担心它,但我会在您的导航和应用程序类之间放置一个额外的处理程序类,以便您以后可以将其切换出来。可能需要几分钟或几个月才能有人记录下来。
-
@user3427079 不过这很烦人。大约 90% 的情况下,当我在文档中看到“已弃用”时,它并没有说明原因以及改用什么。然后通常我所做的就是在互联网上搜索,即使在那里我也找不到解决方案。
-
没错,这些更新和变化来得如此之快,以至于几乎不可能正确地遵循它们。然而,android 是为了向后兼容而设计的,所以它通常不是什么大问题。诸如逐步淘汰硬件菜单按钮之类的烦人事情只会在很长一段时间内发生一次。我认为一旦 android L 设备投放市场,它会变得更加清晰,但现在除了创建一个外观以便以后更容易交换之外,您无能为力。
-
@user3427079 不需要特殊的设计模式,因为处理非常短,并且通过侦听器调用其他函数。我想即使它已被弃用,它仍然可以在那里正常工作。我仍然会保持这个问题的开放性,以便知道答案的人(现在或将来)能够回答它。
-
@androiddeveloper 我还注意到他们在
ActionBar的Google IO 2014应用程序中使用了Spinner。
标签: android navigation android-actionbar deprecated android-5.0-lollipop