MonoDroid OnConfigurationChanged不会被解雇

时间:2012-02-28 21:43:06

标签: android xamarin.android

我已经看到了关于这个主题的其他一些问题,但到目前为止,没有一个答案能解决我的问题。我基本上只是不希望每次重新定向屏幕时都重新创建我的活动。根据我的发现,以下内容应该有效:

清单文件

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:installLocation="internalOnly" android:versionCode="1">
  <application android:label="Service Portal">
    <activity android:name =".CallManagement" android:configChanges="orientation"></activity>
  </application>  
  <uses-sdk android:minSdkVersion="10" />
  <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
</manifest>

CallManagement.cs

public override void OnConfigurationChanged(Android.Content.Res.Configuration newConfig)
    {
        base.OnConfigurationChanged(newConfig);
    }

我尝试将android:configChanges更改为“orientation | keyboardHidden”。由于我的目标是API级别10,我多次看到包含“screenSize”的建议不适用。

我在OnConfigurationChanged中放置一个断点,它永远不会捕获,OnCreate肯定会继续运行。我做错了什么,或者我误解了这个功能应该做什么?

1 个答案:

答案 0 :(得分:0)

您是否尝试过特定方向的屏幕锁定?

<activity android:name="MyActivity" android:screenOrientation="landscape">.

我以编程方式锁定屏幕,我没有发现布局和请求方向一样好,然后使用提供的int锁定方向。

如果您不想锁定屏幕,但希望活动在方向更改时正确调整大小,则可能会重新考虑您的设计。保存游戏状态然后允许android重新创建活动被认为是动态屏幕的最佳实践。