2014-12-30 4 views
1

여기 간단한 활동과 단편을 썼습니다. 오리엔테이션을 변경 했으므로 구성 변경 Activity.onCreate()을 다시 호출하지만 Fragment.onCreateView()을 다시 호출합니다. 이후 구성 변경 호출에서 자식 조각을 호출하지 않기 때문에.구성 변경시 Fragment.onCreateView가 호출 되었습니까?

protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.home_container); 

     log("life_cycle_activity", "onCreate"); 

     if(savedInstanceState != null) { 

      log("life_cycle_activity", "ohh..configuration changed"); 
      return; 
     } else { 

      launchChildFragment(); 
     } 
    } 

참고 : 안드로이드 : configChanges가 설정 -> 디스플레이 - 작동하지>

구성 변경에 조각 호출을 방지 할 수있는 방법 어떤 제안을 변경의 fontStyle

여기 내 코드입니다. 이는 그렇게 유지라는 단편을 생성합니다

또는 방지 - 당신의 조각에서 onCreate의 진정한 가치와

공공 무효 setRetainInstance (부울 유지)

을 :

답변

1

savedInstanceState 매개 변수에 활동에있는 "이전"조각이 포함되어 있기 때문에 조각이 다시 만들어집니다. onRetainNonConfigurationInstance() 메소드 (해당 로직은 onCreate())가 FragmentActivity에 있는지 확인하면이 정보가 저장되고 다시로드되는 위치가 표시됩니다.

"글꼴 크기"구성 변경에 대해서는 android:configChanges으로 처리하는 것이 가능하지 않거나 최소한 길을 찾지 못했습니다. this question을 참조하십시오. 여담처럼

:

구성 변경에 Fragment.onViewCreate에 대한 호출을 방지 할 수있는 방법 어떤 제안.

왜 이렇게해야합니까?

+0

감사합니다. @Matiash for info. 나는 또한 동일한 분석을 발견했다. Regression Fragment.onViewCreate prevent ... 레크리에이션 호출을 피하고 싶었습니다.그러나 이제 나는 과정에 대해 꽤 분명하다. – CoDe

1

당신은 호출 할 수 있습니다 활동 구성 변경 :

android : configChange s = "orientation | keyboardHidden | screenLayout | locale | fontScale | mnc | mcc"

in manifest.

+0

안녕하세요, Thanks.but 여전히 파편 메서드가 호출되고 있습니다 .. 그리고 매니페스트의 구성 파라에 관한 ... 나는 settign-> display-> 글꼴 스타일로 노력하고 있습니다 ... 그리고 configChange에서 처리 할 수있는 것이 없습니다. 의견 좀주세요. – CoDe

+0

@Shubh configchange가 진행 중인지 확인할 수도 있습니다. isChangingConfigurations() - api11부터 docs : http://developer.android.com/reference/android/app/Fragment.html#setRetainInstance(boolean) 그것은 명확하게 다음과 같이 기술하고있다. '프래그먼트 인스턴스가 구성 재 작성 (예 : 구성 변경)에서 유지되는지 여부를 제어하십시오. ', 또한이 상세한 SO를 살펴보십시오. http://stackoverflow.com/questions/11182180/understanding-fragments-setretaininstanceboolean – marcinj

관련 문제