android - 如何从 fragment 中获取工具栏?

标签 android android-fragments android-actionbar android-support-library android-toolbar

我有 ActionBarActivityNavigationDrawer 并使用 support_v7 Toolbar 作为 ActionBar。在我的 fragment 工具栏之一有自定义 View 。在其他 fragment 中 Toolbar 应该显示标题。

如何获取 Toolbar 实例来自定义 fragment ?我可以使用 getActivity().getActionBar() 获得 ActionBar,但是如果我为此实例 ActionBar 调用 setTitle() 它什么也不做。

UPD:

就我而言

((ActionBarActivity) getActivity()).getSupportActionBar().setTitle();

(正如 MrEngineer13 所说)在第一次创建 fragment 时不起作用,因为我从 onHiddenChanged() 调用它。现在我在 onCreateView() 中添加了更多,它工作正常。

最佳答案

您需要先将您的 Activity 从 getActivity() 转换为 AppCompatActivity。这是一个例子:

((AppCompatActivity) getActivity()).getSupportActionBar().setTitle();

你必须投它的原因是因为 getActivity() 返回一个 FragmentActivity 并且你需要一个 AppCompatActivity

在 Kotlin 中:

(activity as AppCompatActivity).supportActionBar?.title = "My Title"

关于android - 如何从 fragment 中获取工具栏?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26998455/

相关文章:

java - Android运行时NoClassDefFoundError

android - BottomSheetDialog/BottomSheetDialogFragment——使用哪个以及如何使用?

java - 像 Uber 一样透明的操作栏和状态栏

java - 操作栏中未显示 Android 操作按钮

java - 将第二个 Fragment 添加到 ActionBarActivity 时出现 "Duplicate id, tag null, or parent id 0x0 with another fragment"

android - TabHost 动态添加标签页

android - 已发布的具有唯一名称的 android 应用程序未显示在 playstore 搜索中

android - 为什么上下文菜单在 "Notepad"教程中不起作用?

android - getFragmentManager().popbackstack() 导致空指针异常

android - android中的Mapapi v2导致 fragment 错误