내지도보기 솔루션에 스크린 능력은 크게 SO 게시물이에 ChristophK, user1414726 및 inazaruk에서 제공하는 예제를 기반으로 할 때 : mapview-in-a-fragment지도보기 조각 블랙 (보기가 null) 표시하는 조각에서 다시
onPause ()가 Fragment에서 호출되면 IllegalArgumentException을 피하기 위해 일부 정리가 수행됩니다. onPause 및 중지시에 코드 :이 다른 조각에 보내 주시면 동안 mapViewContainer가 다시 인스턴스화된다 MapActivity가 다시 표시 될 때 onCreateView (..)이 조각에서 재정의됩니다 때문에 onPause가 호출 될 때 잘 작동
if (mapViewContainer != null) {
mapViewContainer.setVisibility(View.GONE);
((ViewGroup) mapViewContainer.getParent()).removeView(mapViewContainer);
mapViewContainer = null;
}
.
그러나 화면을 끄면입니다. 화면의 전원을 다시 켜면 onCreateView (..)가 무시되지 않습니다 (onPaused 및 onResume 호출이 정상적으로 작동 함). 이로 인해 MapView는 onPreateView (..)가 일부 상호 작용 후에 다시 호출 될 때까지 뷰가 onPause의 removeView 호출에서 null이므로 검정색으로 표시됩니다.
어떻게 onCreateView를 재정의하거나 화면의 전원을 다시 켰을 때 MapView를 다시 조각에 추가 할 수 있습니까? onCreateView 내부
코드 (..) :
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// This is where you specify you activity class
Intent i = new Intent(getActivity(), MapTabActivity.class);
Window w = mLocalActivityManager.startActivity("tag", i);
mapViewContainer = w.getDecorView();
mapViewContainer.setVisibility(View.VISIBLE);
mapViewContainer.setFocusableInTouchMode(true);
((ViewGroup)
mapViewContainer).setDescendantFocusability(ViewGroup.FOCUS_AFTER_DESCENDANTS);
return mapViewContainer; }
건배.
환상적인! 첫 번째 onCreateView 호출에서 부모를 얻을 수 있다고 가정했지만 키는 onStart에서 가져 오는 것입니다. 코드에서와 마찬가지입니다. 감사! – gorn