Диалог не должен быть закрыт при изменении ориентации экрана - PullRequest
4 голосов
/ 06 мая 2011

Я создал настраиваемую вкладку, в которой есть два разных рисунка для книжной и альбомной ориентации.Значки для портретного экрана находятся под drawable-hdpi, в то время как для пейзажных изображений - drawable-land-hdpi.На данный момент я поместил изменение конфигурации в манифест, чтобы сохранить видимость диалога.

<code>android:configChanges="orientation"

Всякий раз, когда отображается диалоговое окно и пользователь меняет ориентацию с книжной на альбомную, диалоговое окно по-прежнему отображается, но изображения, которые он использует на вкладке, предназначены для портретного режима.Вот почему макет не выглядит правильным, так как он не использовал рисования для ландшафта.Может ли кто-нибудь помочь мне с этим?Спасибо.

Ответы [ 3 ]

3 голосов
/ 06 мая 2011

Если вы используете android:configChanges="orientation", то Android не воссоздает действие при изменении ориентации. Если вы не хотите, чтобы диалог был закрыт, просто используйте метод Activity.showDialog(). А если вы все еще хотите использовать android:configChanges="orientation", то вам нужно вручную изменить рисованные элементы в методе Activity.onConfigurationChanged().

0 голосов
/ 10 мая 2014

Вы можете выполнить реализацию пользовательского макета, обнаружив режим ориентации, как показано ниже:

@Override
public void onConfigurationChanged(Configuration config) 
{
    super.onConfigurationChanged(config);

    if(config.orientation == Configuration.ORIENTATION_LANDSCAPE)
        Log.i("orientation", "Orientation changed to: Landscape");
    else
        Log.i("orientation", "Orientation changed to: Portrait");
}
0 голосов
/ 19 июня 2013

Добавьте вот так в тег активности в приложении manifest.xml

<activity android:label="@string/app_name" android:configChanges="keyboardHidden|orientation|screenSize" android:name=".your.package"/>
...