참조: http://answerofgod.tistory.com/entry/google-maps-android-API를-이용한-지도-2-Fragment
◎ GoogleMap Activity가 아닌 Fragment내에서 구현하는 방법
Google API를 사용하는 예제가 너무 많지만, 정작 Fragment내에서 구현하려고 하니 잘 되지 않는다 ...
기존 예제는 Fragment<>에 com.google.android.gms.maps.Mapfragment 로 구현을 했는데... Fragment내에서는 Fragment를 사용 이 잘 안되니...
Fragment내에서 구현을 하기 위해서는
MapView를 사용하는 것이 유리하다
기존 Fragment를 구현하려고 하면 NullPointerException 이 발생한다. 그 이유는 아마 OnCreate에서 Map을 실행하지 않기 때문인듯 싶다.
그래서 MapView를 이용해서 구현을 하였다.
<아래와 같이 Fragment에 implements로 OnMapReadyCallback을 사용해준다.>
public class GMapFragment extends Fragment implements OnMapReadyCallback{
이후, 아래와 같이
1. Map View를 선언
2. onCreate 와 OnResume으로 반드시 실행한다음.
3. getMapAsync를 실행하면 된다.
그러면 onMapReady()함수를 불러오기 때문에 구글 맵이 화면에 나오게 된다.
이제 onMapReady에서 다양한 코딩을 해주면 되겟다!!~
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_map, container, false);
/*Fragment내에서는 mapView로 지도를 실행*/
mapView = (MapView)rootView.findViewById(R.id.mapView2);
mapView.onCreate(savedInstanceState);
mapView.onResume();
mapView.getMapAsync(this); // 비동기적 방식으로 구글 맵 실행
return rootView;
}
후...
이거 하나 하는데 왜케 어렵냐 ㅠ
'프로그래밍 > App 개발' 카테고리의 다른 글
Android Asset 사용하기 (0) | 2019.01.29 |
---|---|
[안드로이드] 안드로이드 스튜디오 한글 깨짐 (2) | 2018.07.08 |
[안드로이드] 블루투스 LE와 블루투스 클래식의 차이점 (0) | 2018.06.20 |
[안드로이드 스튜디오] 구글맵 사용하기 step1. (0) | 2018.06.06 |
[안드로이드 스튜디오] Android Studio 설치하기 (0) | 2017.11.02 |