android - 如何在自定义对话框中向 googleMap 显示?(不显示谷歌地图)
问题描述
我创建了一个自定义对话框并初始化了一个地图,但它没有显示在对话框视图中。
我认为 logcat 消息是一个提示,但我无法捕捉到它。消息:
E/DecorView:mWindow.mActivityCurrentConfig 为空
这是DialogFragment
代码:
class ScannerMapDialog : DialogFragment(), OnMapReadyCallback {
private lateinit var googleMap: GoogleMap
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
val view = inflater.inflate(R.layout.dialog_scanner,container,false)
(childFragmentManager.findFragmentById(R.id.scanner_map) as? SupportMapFragment)?.getMapAsync(this)
val btn = view.findViewById<Button>(R.id.bt_done)
btn.setOnClickListener {
dismiss()
}
return view
}
override fun onStart() {
super.onStart()
val width = (resources.displayMetrics.widthPixels * 0.85).toInt()
val height = (resources.displayMetrics.heightPixels * 0.40).toInt()
dialog!!.window?.setLayout(width, ViewGroup.LayoutParams.WRAP_CONTENT)
}
override fun onMapReady(googleMap: GoogleMap) {
this.googleMap = googleMap
googleMap.mapType = GoogleMap.MAP_TYPE_HYBRID
val markerOptions = MarkerOptions().icon(BitmapDescriptorFactory.fromResource(R.drawable.ic_marker)).anchor(0.5f, 0.5f)
val baseLocate = LatLng(37.507543, 127.053699)
markerOptions.position(baseLocate)
googleMap.moveCamera(CameraUpdateFactory.newLatLngZoom(baseLocate, 16f))
}
}