方向更改事件或监听器Android

时间:2011-12-12 14:14:13

标签: android android-orientation

是否有任何事件或听众在@方向改变时触发?

,或者 如何找出手机的方向改变?

谢谢

6 个答案:

答案 0 :(得分:4)

据我所知,有一个听众,

查看http://developer.android.com/reference/android/view/OrientationListener.html

那是班级看看那里。

希望有所帮助。

答案 1 :(得分:4)

您需要阅读Handling Runtime Changes

它解释了处理方向改变之类的旧方法。

Fragments引入以来,他们已经实现了一种新方法(类似于旧方法) - 但是如果你不使用Fragments,使用它就毫无意义。

答案 2 :(得分:2)

答案 3 :(得分:1)

如果您对方向更改触发布局重新显示时更感兴趣,可能需要查看以下内容:http://developer.android.com/reference/android/view/View.OnLayoutChangeListener.html

“当视图的布局边界因布局处理而发生更改时要调用的回调的接口定义。”

答案 4 :(得分:0)

由于onConfigurationChanged未检测到180°旋转,

在这里看到更好的答案: How do I detect screen rotation

答案 5 :(得分:-1)

在某些手机上,会在实际调整大小事件之前触发更改事件。当您需要知道何时调整表单大小时,不建议您使用方向更改事件。

只需使用$(window).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');
    });
}

基本上当你需要更改resize事件时 - >更改ResizeEventHandlerInstance ...并且当您想要更改它时,您不需要一直取消绑定事件