ConfigurationChanged не запускается через Android - PullRequest
0 голосов
/ 16 июня 2020

Это мой AndroidManifest. xml

<application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:supportsRtl="true" android:theme="@style/AppTheme">
        <activity android:name="LoginActivity"
              android:configChanges="orientation|keyboardHidden|screenSize|uiMode"/>
</application>

Когда фрагмент / всплывающее окно запускается из Activity и когда я заряжаю устройство с открытым всплывающим окном, этот прикрепленный экран появляется по умолчанию

On Charge

Действие и фрагмент воссоздаются. Подозреваю, что конфигурацию надо менять. Однако OnConfigurationChanged не запускается в моей деятельности. Я также попытался переопределить это в базовой активности, но это не помогло.

 [Activity(Label = "@string/app_name", Theme = "@style/AppTheme", MainLauncher = true)]
  public partial class LoginActivity : BaseActivity
  {
    // other code
    public override void OnConfigurationChanged(Configuration newConfig)
    {
        base.OnConfigurationChanged(newConfig);
        // To handle attaching Scanner(or Keyboard) at runtime withOUT restarting activity
    }     
  }

OnConfigurationChanged вообще не запускается. Я попытался проверить похожие сообщения, в одном из таких сообщений упоминалось об удалении портретного / ландшафтного режима из активности, которую я пробовал. Любые предложения по этому поводу были бы полезны. Спасибо.

1 Ответ

0 голосов
/ 17 июня 2020

В Xamaring. Android при использовании атрибутов [Activity] все, что вы помещаете в файл AndroidManifest.xml, перезаписывается, поскольку во время компиляции эти атрибуты будут найдены, и будет создан файл AndroidManifest. xml . Вы можете увидеть результат в obj / Debug / android /.

Поэтому вместо того, как Леон предложил в комментариях, добавьте свойства, необходимые в атрибут [Activity]:

[Activity(
    Label = "@string/app_name",
    Theme = "@style/AppTheme",
    MainLauncher = true,
    ConfigurationChanges =
        ConfigChanges.ScreenSize | 
        ConfigChanges.Orientation |
        ConfigChanges.UiMode |
        ConfigChanges.KeyboardHidden
)]
public partial class LoginActivity : BaseActivity
{
    // other code
    public override void OnConfigurationChanged(Configuration newConfig)
    {
        base.OnConfigurationChanged(newConfig);
        // To handle attaching Scanner(or Keyboard) at runtime withOUT restarting activity
    }     
}

Это добавит запись типа:

<activity android:label="LoginActivity" android:mainLauncher="true" android:theme="@style/AppTheme" android:configChanges="orientation|keyboardHidden|screenSize|uiMode" />
...