좋은 하루 모두, 나는 뭔가에 붙어 오전 그리고 나는 방향 변경 중에 조각과 활동이 처리되는 방식으로 개념을 착각하고 있다고 생각. 기본적으로, 나는 액티비티에서 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()를 재정의합니다.
그래서 내 질문
이 화면 방향에서 조각 활동을 처리 할 수있는 올바른 방법인가?
내 조각에서 onsavedInstanceState를 재정의하면 어떤 특정 메서드가 작업에서 호출되는지 여부
죄송합니다. 내 질문이 여기 저기에 있으면 죄송합니다.하지만 정말 혼란 스럽습니다! 방향 변경에서 조각 상태를 유지하는 실제 프로세스는 무엇입니까? 고맙습니다.
아니요, 내 조각을 동적으로 추가하고 있지 않습니다. 그냥 컨테이너로 framelayout을 사용하여 – irobotxxx
왜 레이아웃을 변경하지 않으면 onConfigurationChanged 메서드를 재정의합니까? – user1634451
감사합니다! 방금 체크하고 선을 제거하고 잘 작동했습니다. 아마 당신은 내가 그것을 표시 할 수 있도록 당신의 대답을 편집 할 수 있습니다. – irobotxxx