Ориентация измененного события или слушателя Android - PullRequest
8 голосов
/ 12 декабря 2011

Есть ли какое-либо событие или слушатель, который запускает @ время изменения ориентации?

или, как узнать что ориентация телефона изменена?

Спасибо

Ответы [ 6 ]

4 голосов
/ 12 декабря 2011

Вам нужно прочитать о Обработка изменений времени выполнения .

Это объясняет старый способ работы с такими вещами, как изменение ориентации.

С тех пор, как была введена Fragments, они внедрили новый способ сделать это (аналогично старому) - но если вы не используете Fragments, то нет смысла использовать его.

4 голосов
/ 12 декабря 2011

Насколько я знаю, для этого есть слушатель,

Выезд http://developer.android.com/reference/android/view/OrientationListener.html

То есть класс, посмотрите там.

Надеюсь, это помогло.

2 голосов
/ 24 января 2013

Вместо этого вы можете использовать класс OrientationEventListener !!http://developer.android.com/reference/android/view/OrientationEventListener.html

1 голос
/ 13 февраля 2014

Если вас больше интересует, когда изменение ориентации вызывает повторное отображение макета, вы можете проверить это: http://developer.android.com/reference/android/view/View.OnLayoutChangeListener.html

"Определение интерфейса для обратного вызова, вызываемого при изменении границ макета представления из-за обработки макета."

0 голосов
/ 11 июня 2014

Поскольку onConfigurationChanged вращение на 180 ° не обнаружено,

Смотрите лучший ответ здесь: Как определить поворот экрана

0 голосов
/ 28 февраля 2013

На некоторых телефонах событие изменения адресации срабатывает до фактического события изменения размера.Не рекомендуется использовать событие изменения ориентации, когда вам нужно знать, когда изменяется размер формы.

Просто используйте $ (окно) .resize (function () {stuff to do})

Есливам нужно иметь событие динамического изменения размера и изменить его в какой-то момент, вы можете использовать такую ​​структуру

function ResizeEventHandler (){
  var resizeEvent = function(){}

  this.ResizeEvent = function(value){
        if (value!=null) resizeEvent = value;               
        else return resizeEvent()
  }
}

var ResizeEventHandlerInstance = new ResizeEventHandler();

$(window).resize(function(){ ResizeEventHandlerInstance.ResizeEvent();   });

function YourDinamicalEventSetterFunction(){
    ResizeEventHandlerInstance.ResizeEvent(function(){
               alert('resized');
    });
}

, в основном, когда вам нужно изменить событие изменения размера -> изменить ResizeEventHandlerInstance ... и вам не нужно будет отменять привязкусобытие все время, когда вы хотите изменить его

...