如何在 kotlin 中更改片段 class 中的 ActionBar 标题?
How to Change ActionBar title in fragment class in kotlin?
我是 android kotlin 开发的新手。我尝试了以下代码来更改我的 fragment.It 的操作栏标题,而不是 working.Please 帮助
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
为空,这就是为什么设置标题的代码不会 运行。
试试这个:
override fun onViewCreated(view: View?, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
(activity as AppCompatActivity).supportActionBar?.title = "Example 1"
//...
}
我认为您可能 运行 遇到的另一个问题是您在 activity 的 onCreate
方法中添加了支持操作栏,但您正试图根据 this 在片段的 onViewCreated
中访问它(我还没有真正尝试过,只是看图)。如果是这种情况,那么您必须更改它。也许试试片段中的 onStart
。
它在 onViewCreated 方法上对我有用
override fun onViewCreated() {
(activity as AppCompatActivity).setSupportActionBar(toolbar_name)
(activity as AppCompatActivity).supportActionBar?.title = getString(R.string.title)
}
此页面很好地解释了如何设置工具栏:
https://developer.android.com/training/appbar/setting-up#kotlin
比更改工具栏上的内容:
setSupportActionBar(findViewById(R.id.my_toolbar))
supportActionBar!!.title = "new title of toolbar"
尝试:
override fun onCreateOptionsMenu(menu: Menu, inflater: MenuInflater) {
super.onCreateOptionsMenu(menu, inflater)
inflater.inflate(R.menu.options_menu, menu)
(activity as AppCompatActivity).supportActionBar?.title = "My Fragment Title"
}
我是 android kotlin 开发的新手。我尝试了以下代码来更改我的 fragment.It 的操作栏标题,而不是 working.Please 帮助
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
为空,这就是为什么设置标题的代码不会 运行。
试试这个:
override fun onViewCreated(view: View?, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
(activity as AppCompatActivity).supportActionBar?.title = "Example 1"
//...
}
我认为您可能 运行 遇到的另一个问题是您在 activity 的 onCreate
方法中添加了支持操作栏,但您正试图根据 this 在片段的 onViewCreated
中访问它(我还没有真正尝试过,只是看图)。如果是这种情况,那么您必须更改它。也许试试片段中的 onStart
。
它在 onViewCreated 方法上对我有用
override fun onViewCreated() {
(activity as AppCompatActivity).setSupportActionBar(toolbar_name)
(activity as AppCompatActivity).supportActionBar?.title = getString(R.string.title)
}
此页面很好地解释了如何设置工具栏:
https://developer.android.com/training/appbar/setting-up#kotlin
比更改工具栏上的内容:
setSupportActionBar(findViewById(R.id.my_toolbar))
supportActionBar!!.title = "new title of toolbar"
尝试:
override fun onCreateOptionsMenu(menu: Menu, inflater: MenuInflater) {
super.onCreateOptionsMenu(menu, inflater)
inflater.inflate(R.menu.options_menu, menu)
(activity as AppCompatActivity).supportActionBar?.title = "My Fragment Title"
}