gpt4 book ai didi

android - 不再需要 setSupportActionbar 了吗?

转载 作者:行者123 更新时间:2023-12-03 17:05:54 27 4
gpt4 key购买 nike

随着新的 Toolbar widget 的引入和 AppCompat (android.support.v7.widget.Toolbar) 版本可用,是否需要再调用 setSupportActionbar(toolbar) ?或者调用 setSupportActionbar 有什么好处吗?现在我们可以设置标题、副标题、导航图标、导航图标点击监听器( getSupportActionBar().setDisplayHomeAsUpEnabled(true) 替换 )、菜单、菜单点击监听器( 选项菜单替换 ) 等直接在工具栏上,而无需调用 setSupportActionbar。

最佳答案

然而setSupportActionbar()方法和ActionBar API 保留 the documented way在实现应用栏时,它看起来更像是一种使用 Toolbar 的方式使用开发人员习惯的熟悉的 API。实际上,ActionBar API 只会让事情变得复杂,看看 this article例如。
如今,当单个 Activity 架构和navigation component是实现Android应用程序的推荐方式,很容易setup a fragment toolbar使用 NavigationUI图书馆,例如:

<!-- my_fragment.xml -->
<androidx.constraintlayout.widget.ConstraintLayout ...>

<com.google.android.material.appbar.MaterialToolbar
...
android:id="@+id/toolbar"
app:menu="@menu/my_menu" />

</androidx.constraintlayout.widget.ConstraintLayout>
class MyFragment : Fragment() {
...

override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)

val navController = findNavController()
binding.toolbar.setupWithNavController(navController)
binding.toolbar.setOnMenuItemClickListener { ... }
}
}
这真的很简单,因此您将获得一个带有自动设置标题、工作返回按钮和选项菜单的工具栏。 Here您可以找到完整的 GitHub 示例,该示例演示了使用 NavigationUI 进行的最小工具栏设置。
那么,使用 ActionBar API 没有任何优势吗?也许我错了,但我认为它有用的唯一情况是单个应用程序范围的工具栏。在这种情况下,您可以将工具栏放入您的 Activity 中并在每个 fragment 中进行不同的设置,例如通过覆盖 onCreateOptionsMenu() .但是根据我的经验, fragment 之间的工具栏往往会有很大差异,因此为每个 fragment 设置单独的工具栏会更容易, this thread 中讨论了选择。 .您还可以查看导航组件文档: Support app bar variations .

关于android - 不再需要 setSupportActionbar 了吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33687837/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com