我是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)
}
答案 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"