android - 作为 self 管理的 ActionBar 的工具栏与作为框架管理的 ActionBar 的工具栏

标签 android android-actionbar android-actionbar-compat android-toolbar

好吧,我想了解如果我将 Toolbar 用作 self 管理的 ActionBar 而不使用 setSupportActionBar 会失去什么.

据我所知,ActionBar 所做的就是为 Logo 、导航和菜单项提供占位符,并让 Fragments 添加/自定义菜单项。

可以使用 Toolbar.setLogo()Toolbar.setNavigationIcon()Toolbar.setNavigationOnClickListener()Toolbar.inflateMenu() API。当然,将菜单处理逻辑指向 Fragments 可能会丢失,但我认为如果 Activity 知道哪个 Fragment 就没什么大不了的位于顶部并相应地更改菜单项。

我正在努力确保:

  • 如果我仅通过使用 ToolbarMenuItems(而不是使用 setSupportActionBar())就可以实现每个 ActionBar 功能>).
  • 不完全了解 ActionBar api 是否可以。一些 ActionBar api 非常困惑。使用 setHomeAsUp api 显示汉堡图标、后退图标等,感觉不对。如果今天有人开始学习 android,他们甚至需要了解框架的 ActionBar api 吗?

更新:在文章中Android Design Support LibraryCoordinatorLayout 和 app bar 部分,我了解到新范式 app bar 是 action bar 范式的替代品。我认为 action bar 很快就会被弃用,我们应该习惯新的 app bar 范例,它涵盖了新的 Material 设计用户体验。

最佳答案

是的,您可以在 Toolbar 中使用 ActionBar 实现类似的功能。

主要区别在于 Toolbar 成为 View 的一部分,因此我们可以更有趣地使用它们来获得 Scrolling Techniques

您可以单独使用 Toolbar 作为 View 和执行 ActionBar 类似的功能。例如,在我的一个应用程序中,我使用了 2 个 Toolbar,其中一个设置为 setSupportActionBar(),而另一个仅用于其他一些功能。

结论: 如果您想将 Toolbar 用作自身或框架,则取决于您的要求。尽管如此,您还是可以同时使用它。

我希望这能很好地回答您的问题。

关于android - 作为 self 管理的 ActionBar 的工具栏与作为框架管理的 ActionBar 的工具栏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30606949/

相关文章:

java - 错误 : The Android Gradle plugin supports only Kotlin Gradle plugin version 1. 3.0 及更高版本

android - 在其中一个依赖项中使用旧版本的支持库

Android ActionMode 动态替换 Action Items

Android - 如何创建像 WhatsApp 聊天一样的操作栏?

android - 如何指向已安装的Android Studio sdk

java - android - 时差

android - 自定义操作栏显示将项目升级到 Android SDK 版本 21 后留下的深色填充

Android - 带有简单字符串数组的 ActionBar SearchView 建议

android - 操作栏选项卡的全息主题向后兼容性

layout - 找不到与给定名称匹配的资源(在 'layout_marginTop'的值为'@ dimen/abc_action_bar_icon_vertical_padding