我试图在我的项目中本地启动一个包含在库模块中的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)
最佳答案
由于您的searchDialogFragment
变量在声明中用问号标记为可空,因此您需要使用安全调用运算符?.
。它仅在searchDialogFragment
不为null时执行:
searchDialogFragment?.show(supportFragmentManager, null)
或者,您可以使用以下命令将变量声明为非null,但稍后仍可以在代码中对其进行初始化:
private lateinit var searchDialogFragment: SearchDialogFragment