在Kotlin中的片段中调用setSupportActionBar时出错

Den*_*815 2 android-fragments kotlin android-toolbar

我正在尝试在片段中设置工具栏。

尽管Google Developer文档已更新为包括Kotlin代码(请参阅本页):

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_my)
    // Note that the Toolbar defined in the layout has the id "my_toolbar"
    setSupportActionBar(findViewById(R.id.my_toolbar))
Run Code Online (Sandbox Code Playgroud)

它与活动(而不是片段)中工具栏的设置有关。

我发现这则SO帖子表明您不能只在片段中调用setSupportActionBar。报价:

片段没有这样的方法setSupportActionBar()。ActionBar是Activity的属性,因此要将工具栏设置为actionBar,您的活动应从ActionBarActivity扩展,然后可以在Fragment中调用:

...

如果您使用的是AppCompatActivity:

((AppCompatActivity)getActivity()).setSupportActionBar(mToolbar);
Run Code Online (Sandbox Code Playgroud)

但是,上面给出的代码在Java中。

在Kotlin中我怎么称呼它?

Bry*_*ier 7

要访问ActionBarFragment在科特林:

if(activity is AppCompatActivity){
        (activity as AppCompatActivity).setSupportActionBar(mToolbar)
    }
Run Code Online (Sandbox Code Playgroud)

要设置ActionBar标题,Fragment您可以执行

(activity as AppCompatActivity).supportActionBar?.title = "Title"
Run Code Online (Sandbox Code Playgroud)

要么

(activity as AppCompatActivity).supportActionBar?.setTitle(R.string.my_title_string)
Run Code Online (Sandbox Code Playgroud)