首页 > 解决方案 > 如何在自定义对话框中向 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))
    }
}

标签: androidkotlincustomdialog

解决方案


推荐阅读