【问题标题】:Can't get SupportMapFragment to return anything..seems to be always null无法让 SupportMapFragment 返回任何内容..似乎始终为空
【发布时间】:2017-10-13 12:48:31
【问题描述】:

所以这是我的代码: 问题的关键是 onMapReady 没有被调用,所以我玩弄了

错误

进程:com.example.herbstzu.listview,PID:16963 kotlin.TypeCastException: null 不能转换为非 null 类型 com.google.android.gms.maps.SupportMapFragment

XML

.....
 <LinearLayout
            android:id="@+id/LayoutInfo"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_marginVertical="10dp"
            android:orientation="horizontal">

            <ImageView
                android:id="@+id/imagePhone2"
                android:layout_width="60dp"
                android:layout_height="60dp"
                android:layout_gravity="start"
                android:layout_marginLeft="15dp"
                android:layout_marginRight="15dp"
                app:srcCompat="@drawable/ic_exclamation" />

            <TextView
                android:id="@+id/info_text"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:text="TextView"
                android:textColor="#000000" />
        </LinearLayout>

        <fragment
            class="com.google.android.gms.maps.MapFragment"
            android:id="@+id/mapF"
            android:layout_width="match_parent"
            android:layout_height="200dp"/>

    </LinearLayout>

</ScrollView>

Kotlin 片段类

import android.os.Bundle
import android.support.v4.app.Fragment
import android.util.Log
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import com.google.android.gms.maps.model.LatLng
import com.google.android.gms.maps.model.MarkerOptions
import com.google.android.gms.maps.SupportMapFragment
import com.google.android.gms.maps.CameraUpdateFactory
import com.google.android.gms.maps.GoogleMap
import com.google.android.gms.maps.OnMapReadyCallback

class Event_details : Fragment(),OnMapReadyCallback{

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
    }

    override fun onCreateView(inflater: LayoutInflater?, container: ViewGroup?,
                              savedInstanceState: Bundle?): View? {
        var myView = inflater!!.inflate(R.layout.fragment_event_details, container, false)

        var mapFragment = activity.fragmentManager.findFragmentById(R.id.mapF) as SupportMapFragment
        mapFragment.getMapAsync(this)

        return  myView
    }
     override fun onMapReady(googleMap: GoogleMap) {
        Log.d("onMapready","MapReady")
        val cphbusiness = LatLng(55.770535, 12.511922)
        googleMap.addMarker(MarkerOptions().position(cphbusiness).title("Her"))
        googleMap.moveCamera(CameraUpdateFactory.zoomTo(16.0F))
        googleMap.moveCamera(CameraUpdateFactory.newLatLng(cphbusiness))

    }
}// Required empty public constructor

【问题讨论】:

    标签: android google-maps kotlin supportmapfragment


    【解决方案1】:

    您使用了错误的片段管理器。您需要使用 supportFragmentManager

        var mapFragment = activity.supportFragmentManager.findFragmentById(R.id.mapF) as SupportMapFragment
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-07-26
      • 2021-03-14
      • 2018-07-30
      • 1970-01-01
      • 2017-01-29
      • 2012-11-17
      • 2023-03-29
      • 2023-02-10
      相关资源
      最近更新 更多