gpt4 book ai didi

android - 使用androidx获取 fragment 内的actionBar

转载 作者:行者123 更新时间:2023-11-29 23:18:18 24 4
gpt4 key购买 nike

我只想在带有函数的 fragment 中获取 actionBar,并且我使用的是 Kotlin 语言和 AndroidX。

这是我的代码:

import androidx.appcompat.app.ActionBar
import androidx.fragment.app.Fragment

class TestFragment : Fragment() {

fun getActiobar() : ActionBar
{
return activity.actionBar
}
}

但是我收到了这个错误:

Type mismatch: inferred type is android.app.ActionBar! but androidx.appcompat.app.ActionBar was expected.

有什么帮助吗?

最佳答案

androidx.fragment.app.Fragmentactivity 属性为您提供了 androidx.fragment.app.FragmentActivity“此 fragment 当前关联”(引用自 Android Studio 中可用的文档)

另一方面,FragmentActivityactionBar 属性会给你一个 android.app.ActionBar ,它与遗留 android.support.v7.app.ActionBar 或其 AndroidX 等效项 androidx.appcompat.app.ActionBar

由于 FragmentActivity 没有 supportActionBar 属性,您必须将 FragmentActivity 转换为 androidx.appcompat.app .AppCompatActivity:

import androidx.appcompat.app.ActionBar
import androidx.appcompat.app.AppCompatActivity
import androidx.fragment.app.Fragment

class TestFragment: Fragment() {

fun getActionbar() : ActionBar?
{
return (activity as AppCompatActivity).supportActionBar
}
}

注意:我添加了“?”因为 supportActionBar 可能是 null

关于android - 使用androidx获取 fragment 内的actionBar,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54893039/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com