Google Maps Activity를 Fragment에 복사할 때의 주의

조금 빠져서 메모

시도한 일


  • Google Maps Activity 코드를 그대로 새 Fragment에 복사하여 Map 표시하는 Fragment로 사용



  • 빠진 것


  • "Unresolved reference : supportFragmentManager"라는 오류가 발생합니다.

    대책


  • supportFragmentManager에서 childFragmentManager로 변경

  • 대책 전

    Fragment.kt
    override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
            super.onViewCreated(view, savedInstanceState)
            // Obtain the SupportMapFragment and get notified when the map is ready to be used.
            val mapFragment = supportFragmentManager
                .findFragmentById(R.id.map) as SupportMapFragment
            mapFragment.getMapAsync(this)
        }
    

    대책 후

    Fragment.kt
    override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
            super.onViewCreated(view, savedInstanceState)
            // Obtain the SupportMapFragment and get notified when the map is ready to be used.
            val mapFragment = childFragmentManager //ここが変わっている
                .findFragmentById(R.id.map) as SupportMapFragment
            mapFragment.getMapAsync(this)
        }
    

    원인


  • 각 계층에 대해 호출하는 MapFragment가 다릅니다.
  • Activity→Fragment: supportFragmentManager
  • Fragment→아이 Fragment:childFragmentManager


  • 공식 문서는 제대로 보지 않으면 안됩니다.

    참고가 되는 사이트


  • 단편 관리자(공식 문서)
  • 좋은 웹페이지 즐겨찾기