Ani*_*ngh 6 android android-actionbar
随着新的Toolbar 小部件的引入以及它的 AppCompat (android.support.v7.widget.Toolbar) 版本可用,是否需要再调用 setSupportActionbar(toolbar) ?或者调用setSupportActionbar有什么好处;现在我们可以直接设置标题、副标题、导航图标、导航图标点击侦听器(getSupportActionBar().setDisplayHomeAsUpEnabled(true) 替换)、菜单、菜单点击侦听器(选项菜单替换)等工具栏,而无需调用 setSupportActionbar。
然而setSupportActionbar()方法和ActionBar API 仍然是实现应用栏的记录方式,它看起来更像是一种通过开发人员习惯的熟悉的 API来使用Toolbar 的方式。实际上,ActionBar API 通常只会使事情变得复杂,请查看本文的示例。
如今,当单个活动架构和导航组件被推荐为实现 Android 应用程序的方法时,使用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>
Run Code Online (Sandbox Code Playgroud)
class MyFragment : Fragment() {
...
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
val navController = findNavController()
binding.toolbar.setupWithNavController(navController)
binding.toolbar.setOnMenuItemClickListener { ... }
}
}
Run Code Online (Sandbox Code Playgroud)
就这么简单,您将得到一个带有自动设置标题、后退按钮和选项菜单的工具栏。您可以在此处找到完整的 GitHub 示例,该示例演示了使用 NavigationUI 的最小工具栏设置。
那么,使用 ActionBar API 就没有任何优势了吗?也许我错了,但我认为它有用的唯一情况是单个应用程序范围的工具栏。在这种情况下,您可以将工具栏放入您的活动中,并在每个片段中以不同的方式设置它,例如通过覆盖onCreateOptionsMenu(). 但根据我的经验,片段之间的工具栏往往会有很大差异,因此为每个片段提供单独的工具栏会更容易,该选择将在本线程中讨论。您还可以查看导航组件文档:支持应用栏变体。
| 归档时间: |
|
| 查看次数: |
1498 次 |
| 最近记录: |