gpt4 book ai didi

c# - 当我旋转 Android 模拟器以将方向更改为横向模式或 Potrait 模式时,未调用“OnSizeAllocated”

转载 作者:太空宇宙 更新时间:2023-11-03 22:33:39 28 4
gpt4 key购买 nike

我想在设备方向改变时改变页面布局。但是为此,我首先需要在方向发生变化时收到通知。

我使用了 Page 的“SizeChanged”事件,当我在 ios 模拟器中旋转屏幕时它工作正常。但这不是为 android 模拟器调用的。

我也尝试过使用 OnSizeAllocated 方法,它再次不会被调用用于 android 模拟器,但适用于 ios 模拟器。

public LoginPage()    
{
InitializeComponent();
}

protected override void OnSizeAllocated(double width,double height)
{
base.OnSizeAllocated(width,height);
//
//
}

这是我正在使用的模拟器:-

enter image description here

OnSizeAllocated() 应该调用多次。但它只会在应用程序启动时被调用一次(对于 android 模拟器)。

如何让它工作,或者有没有其他方法可以在模拟器方向改变时得到通知?

最佳答案

Forms 的 OnSizeAllocated 事件耦合到 Android Activity 的 OnConfigurationChanged

所以如果 OnConfigurationChanged 没有被调用,它可能是以下三件事中的任何一个:

  1. 您的设备|模拟器是否设置为自动旋转?拉下快速设置并确保启用旋转。

enter image description here

  1. 您从 Activity 的属性中删除了 ConfigChanges.Orientation

主事件.cs:

[Activity(Label ~~~~~, ConfigurationChanges = ConfigChanges.ScreenSize | ConfigChanges.Orientation)]
public class MainActivity : global::Xamarin.Forms.Platform.Android.FormsAppCompatActivity
  1. 您强制您的 Android 应用程序/事件进入单一方向(通过 list 、属性和/或 native Android 代码)

关于c# - 当我旋转 Android 模拟器以将方向更改为横向模式或 Potrait 模式时,未调用“OnSizeAllocated”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56172451/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com