0
我已经看到关于这个主题的其他一些问题,但到目前为止没有任何答案已经解决了我的问题。我基本上不希望每次屏幕重新定向时都要重新创建活动。从我发现,下面应该工作:MonoDroid OnConfigurationChanged Not Firing
清单文件
<?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);
}
我试图改变机器人:configChanges为 “方向| keyboardHidden”。由于我针对的是API级别10,因此我曾多次看到包含“screenSize”的建议不适用。
我在OnConfigurationChanged void中放置了一个断点,它永远不会捕获,OnCreate肯定会继续运行。我做错了什么或者我误解了这个功能应该做什么?
我绝对不想锁定屏幕方向。用户需要能够以任何方向最舒适的方式与应用进行交互。我遇到的最大问题是Dialogs和一个动态的Spinner。在OnCreate中,微调器被赋予一个ArrayAdapter,其选项根据其他因素而改变。如果我选择位置1中的项目并重新定向,则在OnCreate中,它会基于OnCreate中的新情况建立选项列表,现在位置1中的内容不是那里的内容。 – jmease 2012-03-01 19:11:12
所以 - 你可以保存选择基于一些独特的选项ID(名称或哈希),然后选择哪个对象匹配您保存的值,在创造?我非常同意你的看法,即在屏幕更改上对应用程序的控制很少,但同样,它的意思是成为“功能”而不是bug。 – Noah 2012-03-02 21:10:06
不是。在横向中选择的项目可能甚至不是微调器中的选项,并且在onCreate中重建ArrayAdapter。微调器中的选项旨在控制工作流程,因此根据用户当前的位置,选项会改变。只要在微调器中选中该项目,我就有用户的选择。我想我总是可以强制微调者在重定向时选择一个通用的“选择”项。但是这对对话的问题没有帮助? – jmease 2012-03-12 21:00:50