【发布时间】:2017-06-22 18:31:36
【问题描述】:
我正在尝试在我的项目中本地启动一个包含在库模块中的 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)
【问题讨论】:
-
你的
show方法签名是什么? -
您确定不需要 supportFragmentManager 吗?
-
@VladMatvienko:我正在使用 android.support.v4.app.DialogFragment 方法。 public void show(FragmentManager manager, String tag) { mDismissed = false; mShownByMe = 真; FragmentTransaction ft = manager.beginTransaction(); ft.add(这个,标签); ft.commit(); }
-
@AdamForbis 我也试过这种方法。
-
如果看show方法的源码是不是标记为@Nullable的tag参数?如果你给它一个实际的标签,它仍然做同样的事情吗?