0

현재 액티비티의 테마를 동적으로 설정하기 위해 setTheme()을 사용하고 있습니다. 내가 안드로이드 사용할 수 있습니다 :. 나는 가로 모드의 레이아웃을 재현하기에 AlertDialog를 필요로하는 configChanges의 = "방향을오리엔테이션을 변경할 때 setTheme()이 작동하지 않습니다.

을 나는 응용 프로그램의 초기 시점에서 그림 참고()를 사용할 때마다, 그것을 잘 작동합니다. 나는 방향을 전환 할 때, 주제는 다시 되돌아 원래 AndroidManifest를 설정한다. 어떻게이 문제 가야합니까?

답변

0

이 방법 테마 동적으로 설정합니다. public void onConfigurationChanged(Configuration newConfig) { super.onConfigurationChanged(newConfig); }

+0

안녕하세요. 분명치 않았습니다. Activity와 AlertDialog는 두 개의 분리 된 뷰입니다. 해당 설정을 사용할 때마다 AlertDialog는 레이아웃을 가로/세로보기로 리플 로우하지 않습니다. 설정을 제거하면 AlertDialog가 정상적으로 작동하지만 Activity의 테마가 엉망이됩니다. – barrybear

1

는 호출하기 전에 테마를 설정 super.onCreate(), 예 :

protected void onCreate (Bundle savedInstanceState) { 
    setTheme (...); 
    super.onCreate (savedInstanceState); 
    // go on with further initialization  
} 

관찰 된 동작은 super.onCreate()가 방향 변경 후 테마가 적용되기 전에 이전 뷰 및/또는 조각 상태를 복원 할 때 발생합니다.

관련 문제