Имам дейност, която надува списъчен изглед. При щракване върху елемент от списък се отваря диалогов прозорец (обработва се в съответния адаптер за списък.) При промяна на ориентацията диалоговият прозорец за показване (ако има такъв) изчезва (както се очаква.) Това, което искам е диалоговият прозорец за показване да не се отхвърля при промяна на ориентацията и Нямам идея как да се справя чисто.
Как да поддържам показването на диалогов прозорец при промяна на ориентацията?
Отговори (2)
Когато завъртите телефона, вашата дейност всъщност се унищожава и пресъздава. Това включва вашия диалог. Да, вероятно е най-глупавото дизайнерско решение в историята, но ние сме останали с него. Има два начина да го коригирате:
1) Изключете тази „полезна“ функция. Ако нямате различни оформления за пейзаж и портрет, това бих предложил. Добавете android:configChange="orientation|resize" към дейността си в манифеста.
2) Приложете onSaveInstanceState/onRestoreInstanceState и имайте променлива, която казва дали трябва да създадете отново и да стартирате отново диалоговия прозорец.
Можете да деактивирате промяната на ориентацията във файла androidManifest.xml
<activity
android:name="com.example.deneme"
android:label="@string/app_name"
android:launchMode="singleTop"
*************android:screenOrientation="landscape" >*******************
</activity>
OR
можете да го направите, преди да се покаже диалогов прозорец
setRequestedOrientation (ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
след диалоговия прозорец се показва
setRequestedOrientation (ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);