如何在kotlin中更改片段类中的ActionBar标题?

时间:2018-06-01 07:20:48

标签: android android-fragments kotlin android-actionbar

我是kotlin的android开发新手。我尝试使用以下代码从我的片段更改操作栏标题。它不起作用。请帮助

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)
}

3 个答案:

答案 0 :(得分:7)

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

试试这个:

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

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

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

答案 1 :(得分:0)

它在onViewCreated方法上对我有用

FLOAT

答案 2 :(得分:0)

这个页面很好地解释了如何设置工具栏:

https://developer.android.com/training/appbar/setting-up#kotlin

比改变工具栏上的东西:

setSupportActionBar(findViewById(R.id.my_toolbar))
supportActionBar!!.title = "new title of toolbar"