我是 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/