Что мешает приложению .NET MAUI принять события ориентации устройства?Android

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Что мешает приложению .NET MAUI принять события ориентации устройства?

Сообщение Anonymous »

Я хочу, чтобы мое приложение .net 9 Maui (первоначально нацеливающееся на Android), чтобы ответить на изменения в ориентации устройства. Первоначально это сработало, но в какой -то момент я, должно быть, внес изменения и не заметил, что изменения ориентации больше не вызывали события. Я подтвердил, что как эмулятор (Pixel 7 Pro, API 35), так и физическое устройство (Samsung S23 Ultra, API 34) имеют автоматическое восстановление, а изменения ориентации работают для других приложений. < /P>
< P> Сначала я использовал ContentPage.sizeChanged, что было хорошо для отдельных страниц. < /p>
public partial class SplashScreen : ContentPage
{
public SplashScreen()
{
InitializeComponent();
BindingContext = this;
this.SizeChanged += OnPageSizeChanged;
}

public void OnPageSizeChanged(object sender, EventArgs e)
{
Debug.WriteLine("OnPageSizeChanged triggered");
}
}
< /code>
Когда я заметил, что это вообще не работает (OnPageSizeChanged вообще не был вызван), я попытался переоценить OnsizealLocated, как предложено здесь. В настоящее время этот метод выполняется только один раз (когда начинается приложение), но никогда не в ответ на изменение ориентации.public partial class SplashScreen : ContentPage
{
public SplashScreen()
{
InitializeComponent();
BindingContext = this;
DeviceDisplay.Current.MainDisplayInfoChanged += (object sender, DisplayInfoChangedEventArgs e) =>
{
Debug.WriteLine("MainDisplayInfoChanged triggered");
}
}
}
< /code>
Это не сработало вообще; MainDisplayInfoChanged не запускается во время запуска или изменения ориентации, ни как лямбда, ни в качестве регулярного обработчика событий. . < /p>
[Activity(Theme = "@style/MyTheme.Splash", MainLauncher = true, ConfigurationChanges = ConfigChanges.ScreenSize | ConfigChanges.Orientation | ConfigChanges.KeyboardHidden | ConfigChanges.ScreenLayout | ConfigChanges.Density)]
public class MainActivity : MauiAppCompatActivity
{
public override void OnConfigurationChanged(Android.Content.Res.Configuration newConfig)
{
Debug.WriteLine("MainActivity OnConfigurationChanged");
base.OnConfigurationChanged(newConfig);
}
}
< /code>
Я сомневаюсь, что мне нужна большая часть этих конфигураций, но я пробовал ориентацию и экранизует вместе, отдельно и даже удаляю весь параметр configurationChanges. Я также пробовал те же наборы значений configchanges в файле androidmanifest.xml в разделе приложения, думая, что это будет применить ко всем действиям. < /P>
Несмотря на все, что я пробовал, у меня нет Нашел все, что заставляет мое приложение реагировать на изменения ориентации или даже выполнять соответствующие события. Итак, мой вопрос: что мешает моему приложению отвечать или даже знать об изменениях ориентации?

Подробнее здесь: https://stackoverflow.com/questions/794 ... ion-events
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»