android - 如何更改 kotlin fragment 类中的 ActionBar 标题?

标签 android android-fragments kotlin android-actionbar

我是 kotlin 中 android 开发的新手。我尝试了以下代码来更改我的 fragment 中的操作栏标题。它不起作用。请帮忙

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


    activity.actionBar?.title = "Example 1"
    countBtn.setOnClickListener(this)
    toastBtn.setOnClickListener(this)
    randomBtn.setOnClickListener(this)

}

MainActivity.kt代码如下

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_main)


    setSupportActionBar(toolbar)
    val actionBar = supportActionBar
    actionBar?.title = getString(R.string.toolbar_title)
}

最佳答案

您似乎正在设置支持操作栏,因此您也必须在 onCreateView 方法中使用支持操作栏。 actionBar 为 null,这就是设置标题的代码无法运行的原因。

试试这个:

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

  (activity as AppCompatActivity).supportActionBar?.title = "Example 1"
  //...
}

我认为您可能会遇到的另一个问题是,您在 Activity 的 onCreate 方法中添加了支持操作栏,但您正试图在 fragment 的 onViewCreated 中访问它 根据 this 出现在前面(我还没有真正尝试过,只是看图)。如果是这种情况,那么您必须更改它。也许可以尝试 fragment 中的 onStart

关于android - 如何更改 kotlin fragment 类中的 ActionBar 标题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50638093/

相关文章:

android - 添加自定义字体时无法解析方法 getAssets()

android - 如何获取通讯录中对应姓名的电话号码?

android - 使用 fragmentStatePagerAdapter 更新 viewpager 中的 fragment/ View

android - 如何在android中禁用芯片

android - Java 8 "Optional"不好的做法?

android - 用安卓获取歌曲信息

java - 自定义布局中 switchpreference 中开/关切换的颜色变化

安卓 fragment : support library crashes on extending Activity class

java - 使用“查看寻呼机”在选项卡中未显示列表

kotlin - 将 block 列表分成连续的相同对象的列表