두 오리 엔테이션을 포함하는 액티비티의 프래그먼트가 각기 다른 오리엔테이션을 표시합니다.오리엔테이션 변경시 다른 레이아웃의 이전 데이터 유지
세로 방향의 경우 firstLayout입니다.
가로 방향의 경우 secondLayout입니다.
두 레이아웃이 동일한 컨테이너에 표시됩니다.
그래서 나는 같은 것을 가지고 - 사용자가 장치 (가로 세로)를 회전 그럼 언제
if ((getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT)
&& getActivity().findViewById(R.id.fragment_container) != null)
{
view = inflater.inflate(R.layout.firstLayout, container, false);
//data
return view;
}
else
{
view = inflater.inflate(R.layout.secondLayout, container, false);
return view;
}
을, 레이아웃 secondLayout
가 호출됩니다. .
레이아웃 firstLayout
너무 많은 시간이 소요된다 - 사용자가 다시 레이아웃 secondLayout
에서 프래그먼트 즉 레이아웃 firstLayout
의 다른 레이아웃이 다시 호출 될 때 장치를 회전
문제이고 onCreate()
에 많은 초기화 작업을하는 것처럼 응용 프로그램이 잠시 멈춘 것처럼 다시로드 할 수 있습니다.
그렇기 때문에, firstLayout
은 조각으로 onCreate()
을 호출하지 않고도 호출해야한다고 생각했습니다.
android:configChanges="orientation|screenSize"
을 did- 다음 내 레이아웃
firstLayout
을 팽창에 의한 방법
onConfigurationChanged(Configuration newConfig)
를 오버라이드 (override). 그러나 이렇게함으로써 이전 데이터를 잃어 버렸습니다.
이전 상태를 유지하는 데 사용하는 약 setRetainState(true)
에 대해 들었지만 방향 변경시 이전 데이터를 가져 오는 방법을 잘 모르겠습니다.
firstLayout
을 방향 변경에 표시하는 가장 좋은 방법은 사용자가 뒤로 버튼을 클릭 할 때와 같은 빠른 방법입니다.