我试图在我的项目中本地启动一个包含在库模块中的DialogFragment。我调用它的类是使用 Kotlin ,我在函数 getFragmentManager()上得到以下错误:没有可以使用提供的参数调用以下函数
import com.github.adamshurwitz.materialsearchtoolbar.SearchDialogFragment
...
private var searchDialogFragment: SearchDialogFragment? = null
...
searchDialogFragment = SearchDialogFragment()
searchDialogFragment.show(supportFragmentManager, null)
我有另一个项目,我在 Java 中调用它,它可以正常使用: getSupportFragmentManager()。
我尝试过的解决方案:
searchDialogFragment.show(getFragmentManager(), null)
searchDialogFragment.show(supportFragmentManager, null)
searchDialogFragment.show(supportFragmentManager as FragmentManager, null)
searchDialogFragment.show(supportFragmentManager.beginTransaction(), null)
searchDialogFragment.show(supportFragmentManager(), null)
答案 0 :(得分:3)
由于您的?.
变量在声明中标记为可为空,因此您需要使用安全调用运算符searchDialogFragment
。它仅在searchDialogFragment?.show(supportFragmentManager, null)
不为空时执行:
private lateinit var searchDialogFragment: SearchDialogFragment
或者您可以使用以下内容将变量声明为非null,但仍可以在代码中稍后对其进行初始化:
{{1}}
答案 1 :(得分:0)
只需用以下代码替换:
searchDialogFragment.show(fragmentManager!!.beginTransaction(), null)
确定是否已经导入:import androidx.fragment.app.Fragment