2012-12-11 2 views
0

좋은 하루 모두, 나는 뭔가에 붙어 오전 그리고 나는 방향 변경 중에 조각과 활동이 처리되는 방식으로 개념을 착각하고 있다고 생각. 기본적으로, 나는 액티비티에서 3 조각을 가지고 있으며, footer를 통해 framelayout을 통해 동적으로로드됩니다. 기본적으로 앱이 시작되면 첫 번째 단편이 표시됩니다. 즉, 활동이 삭제되고 생성 될 때마다 첫 번째 단편이 표시됩니다. 이제 내가 원하는 것은 다른 UI 레이아웃을 사용하여 방향을 변경 한 후에 방향 변경이 표시되기 전에 현재 보이는 조각입니다. 하지만 조각이나 다른 것을 보여 주려고 할 때 Null 뷰를 얻습니다. 내 활동에오리 엔테이션 변화에 현재 보이는 조각을 표시 빈/null보기 안드로이드

나는이 가지고에서 onCreate :

if(savedInstanceState != null){ 
      switchTag = savedInstanceState.getString(SAVED_CURRENT_FRAGMENT_STATE); 
      Log.d(TAG, "fragment after orientation is " + switchTag); 
       displayCurrentFragment(switchTag);   

     }else { 

      dashboardfragment = new DashBoardFragment(); 
       ft.add(R.id.dashboard_fragment_container_id, dashboardfragment, DASHBOARD_FRAG_TAG); 
       ft.commit(); 
     }  

을하고 난 활동에 onSaveInstanceState와의 onConfigurationChanged를 오버라이드 (override) :

@Override 
public void onSaveInstanceState(Bundle outState) { 

    Log.d(TAG, "OnSavedInstance() on dashboard activity"); 
    outState.putString(SAVED_CURRENT_FRAGMENT_STATE, switchTag); // to save the current visible fragment 

    super.onSaveInstanceState(outState); 

} 

@Override 
public void onConfigurationChanged(Configuration newConfig) { 
    super.onConfigurationChanged(newConfig); 
    setContentView(R.layout.dashboard_layout); // same as oncreate 
} 

내가 또한뿐만 아니라 조각의 OnsaveInstanceState()를 재정의합니다.

그래서 내 질문

  1. 이 화면 방향에서 조각 활동을 처리 할 수있는 올바른 방법인가?

  2. 내 조각에서 onsavedInstanceState를 재정의하면 어떤 특정 메서드가 작업에서 호출되는지 여부

죄송합니다. 내 질문이 여기 저기에 있으면 죄송합니다.하지만 정말 혼란 스럽습니다! 방향 변경에서 조각 상태를 유지하는 실제 프로세스는 무엇입니까? 고맙습니다.

답변

0

레이아웃에서 조각에 xml을 사용하고 있습니까? 가로 및 세로 레이아웃을위한 두 레이아웃 모두 정의 된 단편을 가지고 있는지 확인하십시오.

+0

아니요, 내 조각을 동적으로 추가하고 있지 않습니다. 그냥 컨테이너로 framelayout을 사용하여 – irobotxxx

+0

왜 레이아웃을 변경하지 않으면 onConfigurationChanged 메서드를 재정의합니까? – user1634451

+0

감사합니다! 방금 체크하고 선을 제거하고 잘 작동했습니다. 아마 당신은 내가 그것을 표시 할 수 있도록 당신의 대답을 편집 할 수 있습니다. – irobotxxx

관련 문제