마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

구글맵이 다음 fragment에서도 유지되어있어요.

0 추천
안녕하세요~ 구글맵 부분 개발중에 해결이 안되어서 도움을 요청합니다 ㅠㅠ...
구글맵을 페이지의 일부분에 우선적으로 보여주고 지도보기 버튼을 누르면
전체화면에 보여주는 형식으로 앱을 개발하고 있습니다.
그런데 전체 화면 보여주는 페이지로 넘어가면 그전에 있던 페이지의 맵 이미지가 그대로 유지되어서 위에 떠 있네요??
visibility로 gone해봐도 그대로이길래 레이아웃 문제가 아니라
FragmentTransaction을 사용해서 그런것이라 판단되었습니다.
그런데 hide를 하거나 remove 등 해보았지만 앱이 종료되어 버리는 등의 현상이 발생합니다...
홈버튼이나 종료버튼으로 화면이 사라졌다가 다시 나타나면 정상적으로 표현되어있습니다.
신입 개발자인데 사수도 없고 어디 물어볼 사람도 없네요 ㅠㅠ
어떻게 해결해야 좋을까요? 조언 부탁드립니다..
각 페이지는 fragment로 되어있고 
if (map == null) {
final SupportMapFragment smp = SupportMapFragment.newInstance();
 
FragmentTransaction ft = getChildFragmentManager()
.beginTransaction();
ft.replace(R.id.map, smp, "StoreMap");
ft.commit();
 
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
map = smp.getMap(); //GoogleMap 변수로 private 선언되어있습니다.
public LinearLayout mapLayout;
mapLayout.setVisibility(View.VISIBLE);
.....
 
mFragments를 보시면 아시겠지만 main페이지 다음으로 4페이지가 열려있습니다. ㅠㅠ TodayRentcarInfoFragment2페이지에 작은 구글맵화면이 있고 CarSearchStoreMapFragment 화면이 맵 전체보기 화면입니다.
익명사용자 님이 2014년 5월 30일 질문

1개의 답변

0 추천
맵뷰는 한번 생성되어지면 변형이 불가능 합니다~!

변형 하여 보여주시려면 다시 생성 하셔야 합니다~!

하지만 또 맵뷰의 경우 재생성이 불가능 하지요~~!

즉 화면이 넘어갈때 맵뷰를 종료 시킨후 다시 생성 하셔야 합니다~!
ThisPlus (46,920 포인트) 님이 2014년 5월 30일 답변
public void ClearMap() {
            FragmentTransaction fragmentTransaction = getChildFragmentManager()
                    .beginTransaction();
            fragmentTransaction.remove(smp);
            fragmentTransaction.commit();
        }
    }
라고 메서드를 만들어서 인스턴스로 화면 이동할때 현재페이지 remove시키고 화면 이동하니까 정상출력되었고, back했을때는 삭제되어있어서 표시 안되있어서 initMap() 메소드를     public void onReloaded() {} 부분에서 호출하게 했더니 해결이 되긴했습니다. 이렇게하면 되는거 맞을까요? 아니면 더 좋은 방법이 있을까요?
...