【发布时间】:2015-06-02 21:28:53
【问题描述】:
好的,我想了解如果我将Toolbar 用作自我管理的ActionBar 而不使用setSupportActionBar,我会失去什么。
AFAIK,ActionBar 所做的只是为徽标、导航和菜单项提供占位符,还让Fragments 添加/自定义菜单项。
使用Toolbar.setLogo()、Toolbar.setNavigationIcon()、Toolbar.setNavigationOnClickListener() 和Toolbar.inflateMenu() api 可以实现相同的功能。当然,将菜单处理逻辑指向Fragments 可能会丢失,但我认为如果Activity 知道哪个Fragment 位于顶部并相应地更改菜单项,这没什么大不了的。
我正在努力确保:
- 如果我可以通过使用
Toolbar和MenuItems(而不是使用setSupportActionBar())来实现所有ActionBar功能。 - 可以不全面了解
ActionBarapi。一些ActionBarapi 非常令人困惑。使用setHomeAsUpapi 显示汉堡图标、返回图标等,感觉不对。如果有人今天开始学习android,他们还需要了解框架的ActionBarapi吗?
更新:在Android Design Support Library 部分CoordinatorLayout and the app bar 下的文章中,我了解到新范式应用栏 是操作栏范式的替代品。我认为 action bar 很快就会被弃用,我们应该习惯新的 app bar 范式,它涵盖了新的 Material Design 用户体验。
【问题讨论】:
-
您对设计支持库的更新是正确的,但截至今天和 AFAIK,在某些情况下您仍然需要
getSupportActionBar().setDisplayHomeAsUpEnabled(true):stackoverflow.com/q/31475986/603270
标签: android android-actionbar android-actionbar-compat android-toolbar