Я видел ряд других вопросов по этому вопросу, но до сих пор ни один из ответов не устранил мою проблему. Я просто не хочу, чтобы моя деятельность воссоздавалась каждый раз, когда экран переориентировался. Из того, что я нашел, ниже должно работать: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, и она никогда не ловится, и OnCreate определенно продолжает работать. Что я делаю неправильно или я не понимаю, что должна делать эта функция?
Я определенно не хочу блокировать ориентацию экрана. Пользователи должны иметь возможность взаимодействовать с приложением в любой ориентации, наиболее удобной. Самые большие проблемы, с которыми я столкнулся, - это Dialogs и динамический Spinner. В OnCreate spinner получает ArrayAdapter, параметры которого изменяются в зависимости от других факторов. Если я выберу элемент в позиции 1 и переориентируюсь, в OnCreate он будет строить список опций, основанных на новой ситуации во время OnCreate, и теперь то, что находится в позиции 1, не является тем, что было там. – jmease
Итак - можете ли вы сохранить выбор на основе некоторого уникального идентификатора параметра (имя или хеш), а затем выбрать, какой объект соответствует вашему сохраненному значению, в on-create? Я очень согласен с вами в том, что на экране нет никакого контроля над приложением, но опять же, это означает «особенность», а не ошибка. – Noah
Не совсем. Элемент, выбранный в ландшафте, может даже не быть опцией в прядильщике, когда поворачивается портрет, а ArrayAdapter восстанавливается в onCreate. Параметры в spinner предназначены для управления рабочим процессом, поэтому в зависимости от того, где пользователь в настоящее время, параметры изменяются. У меня есть выбор пользователя, как только элемент выбран в счетчике. Наверное, я могу просто заставить вращение выбрать общий элемент «Выбрать» при переориентации. Но это не помогает в диалоговом вопросе? – jmease