nix*_*xau 5 android screen-orientation android-emulator android-2.2-froyo
我需要在Android应用程序中处理方向更改.为此我决定使用OrientationEventListener便利课.但他的回调方法给出了一些奇怪的行为.
我的应用程序以纵向模式启动,然后最终切换到lanscape.我在回调onOrientationChanged方法中执行了一些自定义代码,它提供了一些额外的UI处理逻辑 - 它有几个调用findViewById.奇怪的是,当从横向切换回纵向模式时,onOrientationChanged回调被调用两次,更糟糕的是 - 第二次调用处理错误 Context - findViewById方法开始返回null.这些调用是从MainThread进行的
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
listener = new OrientationListener();
}
@Override
protected void onResume() {
super.onResume();
// enabling listening
listener.enable();
}
@Override
protected void onPause() {
super.onPause();
// disabling listening
listener.disable();
}
Run Code Online (Sandbox Code Playgroud)
我用一个Activity没有任何逻辑的假人复制了相同的行为,除了一个处理定向哈希的人.我通过按Ctrl + F11从Android 2.2模拟器启动方向切换
可能有什么问题?
Upd:实现的内部类 OrientationEventListener
private class OrientationListener extends OrientationEventListener {
public OrientationL() {
super(getBaseContext());
}
@Override
public void onOrientationChanged(int orientation) {
toString();
}
}
Run Code Online (Sandbox Code Playgroud)
}
| 归档时间: |
|
| 查看次数: |
6019 次 |
| 最近记录: |