Форум программистов, компьютерный форум, киберфорум
Программирование Android
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/8: Рейтинг темы: голосов - 8, средняя оценка - 4.75
23 / 23 / 0
Регистрация: 26.02.2014
Сообщений: 684

Как запретить смену ориентации при вызове DialogFragment?

08.02.2016, 12:44. Показов 1902. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
В активити вызывается DialogFragment, как запретить смену ориентации экрана пока он активен?
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
08.02.2016, 12:44
Ответы с готовыми решениями:

Запретить смену ориентации экрана
имеется проблема в большом весе приложения и нежелании делать отдельные фоны для активити для горизонтальной ориентации. Как сделать чтобы...

Запретить смену ориентации экрана пока идет загрузка
У меня есть такой код, где активити создается из двух фрагментов и потом запускает поток в котором идет сетевой запрос. В ответ приходит...

Как отследить смену ориентации Android-а
Добрый день. Возникла небольшая проблема - нужно отследить смену ориентации телефона, но не в Update(), а с помощью события. Что-то не...

12
426 / 406 / 68
Регистрация: 06.10.2012
Сообщений: 1,748
08.02.2016, 12:58
Лучший ответ Сообщение было отмечено disx как решение

Решение

disx, setRequestedOrientation.
Перед применением надо запросить текущую ориентацию и зафиксировать её. По окончании можно вернуть разворот по гироскопу назад. Лень искать полный код, поглядите для начала сюда: http://stackoverflow.com/quest... 01#2799001.
1
2884 / 2296 / 769
Регистрация: 12.05.2014
Сообщений: 7,978
08.02.2016, 13:11
не проще отключить вообще пересоздание активити при поворотах?

хотя даже и без этого диалоги не пересоздаются при повороте
в чем смысл?
1
426 / 406 / 68
Регистрация: 06.10.2012
Сообщений: 1,748
08.02.2016, 13:18
Паблито, не проще. Видимо, плохо читали документацию, где буквально на каждом шагу сказано, что запрет пересоздания активностей - крайний метод, горячо не рекомендуемый создателями Андроида. Может плохо проявить себя в некоторых случаях.
0
2884 / 2296 / 769
Регистрация: 12.05.2014
Сообщений: 7,978
08.02.2016, 13:32
есть ссылка на офф документацию где это написано?

чисто логически - пересоздание нужно только если меняется разметка, то есть должен примениться другой лаяут
иначе это пустая трата ресурсов - вызывать onCreate() при каждом повороте


да, и хотелось бы услышать когда это может вылезти боком?

Добавлено через 9 минут
и самостоятельно отвечу на риторические вопросы
Примечание. Самостоятельная обработка изменения конфигурации может значительно затруднить использование альтернативных ресурсов, так как система не применяет их автоматически. Этот подход может применяться в крайнем случае, когда необходимо избежать перезапуска в результате изменения конфигурации, и для большинства приложений его использование не рекомендуется.
подчеркнул основную мысль для тех, кто читает по-диагонали
если у активити тупо одна разметка и при повороте никакие ДРУГИЕ ресурсы не успользуются, например для какие-то текстовые поля меняют название при повороте, то запрет пересоздания только разгрузит систему

иначе, естественно, пересоздание активти лучше всего
0
426 / 406 / 68
Регистрация: 06.10.2012
Сообщений: 1,748
08.02.2016, 13:49
Цитата Сообщение от Паблито Посмотреть сообщение
подчеркнул основную мысль для тех, кто читает по-диагонали
Вот-вот, а теперь подумайте, кто читает по диагонали. Хотел привести ту же ссылку (http://developer.android.com/i... gTheChange) + надо поискать ещё несколько, где об этом сказано в контексте запуска потоков и работы с памятью, но искать лень.
Случаи с текстовыми полями в расчёт брать не будем, т.к. это не общий случай.
Цитата Сообщение от Паблито Посмотреть сообщение
хотелось бы услышать когда это может вылезти боком?
Например, в тех случаях, которые не указаны в android:configChanges, а такие существуют.

Добавлено через 4 минуты
Да, вспомнил случай, который рекомендуется для запрета пересоздания активностей. Это воспроизведение видео. Об этом часто пишу авторы программ как о единственном случае.
0
535 / 504 / 114
Регистрация: 12.03.2014
Сообщений: 1,671
08.02.2016, 13:49
CoolMind, Паблито, мне кажется что все как-то не так поняли изначальную фразу про запрет пересоздания при перевороте и понеслась... Запрещать можно и нужно в некоторых случаях, НО это не освобождает от обработки пересоздания активити т.к. она пересоздается не только при поворотах, есть еще куча способов ее пересоздать.
0
426 / 406 / 68
Регистрация: 06.10.2012
Сообщений: 1,748
08.02.2016, 13:51
Spelcrawler, согласен.
0
2884 / 2296 / 769
Регистрация: 12.05.2014
Сообщений: 7,978
08.02.2016, 13:53
вобщем как я и предполагал - пруфов нет, они как бы где-то есть, но их нет

Цитата Сообщение от Spelcrawler Посмотреть сообщение
она пересоздается не только при поворотах, есть еще куча способов ее пересоздать
да это понятно, тут речь идет о том, стоит ли вообще ее пересоздавать если сменилась ориентация экрана
0
426 / 406 / 68
Регистрация: 06.10.2012
Сообщений: 1,748
08.02.2016, 14:06
Цитата Сообщение от Паблито Посмотреть сообщение
вобщем как я и предполагал - пруфов нет, они как бы где-то есть, но их нет
Сам привёл пруф, где написано, что для большинства приложений его использование не рекомендуется, и радуется, как ребёнок.

Добавлено через 2 минуты
И это... я не буду искать что-то ради человека, который проявил себя как хам. Не стану унижаться.
0
2884 / 2296 / 769
Регистрация: 12.05.2014
Сообщений: 7,978
08.02.2016, 14:08
в той цитате я выделил главную мысль что бы не возникло затруднений в понимании
они говорят о случае, если есть альтернативные ресурсы

про "выйдет боком" я отписал выше, когда, как и почему выйдет - никто не знает, но страшная история рассказывается на ночь регулярно
0
426 / 406 / 68
Регистрация: 06.10.2012
Сообщений: 1,748
08.02.2016, 14:32
Цитата Сообщение от Паблито Посмотреть сообщение
когда, как и почему выйдет - никто не знает
Только выше было указано, что
Цитата Сообщение от Spelcrawler Посмотреть сообщение
она пересоздается не только при поворотах, есть еще куча способов ее пересоздать
и
Цитата Сообщение от CoolMind Посмотреть сообщение
в тех случаях, которые не указаны в android:configChanges
Дальше уже больше похоже на демагогию.
0
23 / 23 / 0
Регистрация: 26.02.2014
Сообщений: 684
09.02.2016, 11:03  [ТС]
CoolMind, Паблито, Spelcrawler Ооооо-й ребят , не готов поддержать дискуссию из-за отсутствия таких знаний как у Вас ...

но проблему c запретами решил пока так (не знаю на сколько правильно, но работает красиво):

в активити:
Java
1
2
3
4
5
6
7
int orient = getResources().getConfiguration().orientation;
 
                  if (orient==2) {
                      setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
                      dialog.show(getFragmentManager(), "dialog");
                    
                  }else dialog.show(getFragmentManager(), "dialog");
фрагмент:
Java
1
2
3
4
5
6
7
8
9
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        getActivity().setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
.....
@Override
    public void onPause() {
        getActivity().setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED);
        super.onPause();
    }
теперь появилась другая, GPS-координаты через интерфейс транслируются из активити в этот диалог, и если вызывать его из положения лежа(landscape), то активити как видно из кода становится portrait, появляется диалог, но координаты теперь не отображаются/не изменяются в диалоге, почему так может быть???

Добавлено через 18 часов 57 минут
Паблито, CoolMind, короче в манифесте->активити написал
XML
1
android:configChanges="orientation|screenSize"
а во фрагменте так:
Java
1
getActivity().setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
все вроде работает и отображается.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
09.02.2016, 11:03
Помогаю со студенческими работами здесь

Как запретить смену IP в Tor browser при переходе на новую страницу
Как запретить смену IP в Tor browser при переходе на новую страницу?? переходя по ссылке из социальной сети, меняется ip страницы и...

Запретить смену буквы диска
Добрый день. Необходимо запретить пользователю менять букву диска. Пробовал блокировать IRP_MJ_DEVICE_CONTROL...

Запретить смену прав на index.php
Приветствую всех! Возникла следующая проблема: Не так давно у меня на сайт попал вирус, который добавляет вредоностные скрипты в...

Запретить смену обоев определенной группе пользователей домена
Доброго времени суток, уважаемые участники форума. Имеется сервер контроллера домена, под управлением ОС Windows Server 2008 R2,...

Запретить смену фонового изображения на рабочем столе другим пользователям
как администратору в win xp запретить смену фонового изображения на рабочем столе другим пользователям?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Первый деплой
lagorue 16.01.2026
Не спеша развернул своё 1ое приложение в kubernetes. А дальше мне интересно создать 1фронтэнд приложения и 2 бэкэнд приложения развернуть 2 деплоя в кубере получится 2 сервиса и что-бы они. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит: токи, напряжения и их 1 и 2 производные при t = 0;. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru