来自 koin 的 SharedViewModel 无法与 MapFragment 一起使用
SharedViewModel from koin not working with MapFragment
未识别 sharedViewModel:
class MyMapFragment: MapFragment(), OnMapReadyCallback, GoogleMap.OnMapLoadedCallback {
private val viewModel: MyViewModel by sharedViewModel()
private var map: GoogleMap? = null
override fun onMapReady(googleMap: GoogleMap?) {
map = googleMap
map?.setOnMapLoadedCallback(this)
}
override fun onMapLoaded() {
}
}
这是一个已知问题吗?我找不到任何东西。顺便说一句,它适用于 "regular" 片段。
在 koin 中有 2 个扩展文件 FragmentExt
androidx.fragment.app.Fragment
和 android.support.v4.app.Fragment
提供扩展功能 sharedViewModel()
。
MapFragment
extends android.app.Fragment
因此扩展功能在那里不可用。
您可以使用 SupportMapFragment
来扩展 android.support.v4.app.Fragment
并包含您想要的扩展功能,而不是 MapFragment
未识别 sharedViewModel:
class MyMapFragment: MapFragment(), OnMapReadyCallback, GoogleMap.OnMapLoadedCallback {
private val viewModel: MyViewModel by sharedViewModel()
private var map: GoogleMap? = null
override fun onMapReady(googleMap: GoogleMap?) {
map = googleMap
map?.setOnMapLoadedCallback(this)
}
override fun onMapLoaded() {
}
}
这是一个已知问题吗?我找不到任何东西。顺便说一句,它适用于 "regular" 片段。
在 koin 中有 2 个扩展文件 FragmentExt
androidx.fragment.app.Fragment
和 android.support.v4.app.Fragment
提供扩展功能 sharedViewModel()
。
MapFragment
extends android.app.Fragment
因此扩展功能在那里不可用。
您可以使用 SupportMapFragment
来扩展 android.support.v4.app.Fragment
并包含您想要的扩展功能,而不是 MapFragment