【发布时间】:2020-01-20 16:10:59
【问题描述】:
我想知道,如何在没有像片段这样的活动投射的情况下编写代码?....
--------- 一个片段
tempMainImage.setOnClickListener {
val message = "how are you today"
(activity as? MainActivity).let {
it?.onReplaceTtsFragment(message)
}
}
--------- MainActivity
fun onCloseTtsFragmentLayout() {
detailFragmentLayout.visibility = View.GONE
}
fun onReplaceTtsFragment(message: String) {
supportFragmentManager.beginTransaction().replace(R.id.detailFragmentLayout, TtsDetailFragment.newInstance(message, ::onCloseTtsFragmentLayout)).commit()
detailFragmentLayout.visibility = View.VISIBLE
}
【问题讨论】:
-
您可以使用接口或事件总线替换片段中的另一个片段,而不是强制转换活动
(getActivity()),请参阅此答案stackoverflow.com/a/15007656/10097275 -
你为什么不想投?
-
好吧,投射没有问题。但我只是想尝试使用 lambda 接口 :)