Я хочу, чтобы мое приложение .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
Что мешает приложению .NET MAUI принять события ориентации устройства? ⇐ Android
Форум для тех, кто программирует под Android
1739157377
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>
Несмотря на все, что я пробовал, у меня нет Нашел все, что заставляет мое приложение реагировать на изменения ориентации или даже выполнять соответствующие события. Итак, мой вопрос: что мешает моему приложению отвечать или даже знать об изменениях ориентации?
Подробнее здесь: [url]https://stackoverflow.com/questions/79424170/what-prevents-a-net-maui-app-from-receiving-device-orientation-events[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия