当我旋转 android 模拟器以将方向更改为风景模式或肖像模式时,'OnSizeAllocated' 未被调用
'OnSizeAllocated' is not being called when I rotate the android emulator to change the orientation to Landscape mode or Potrait mode
我想在设备方向改变时更改页面布局。但是为此,我首先需要在方向发生变化时得到通知。
我使用了 Page 的 'SizeChanged' 事件,当我在 ios 模拟器中旋转屏幕时它工作正常。但是 android 模拟器不要求这样做。
我也试过使用 OnSizeAllocated 方法,android 模拟器也没有调用它,但在 ios 模拟器上运行良好。
public LoginPage()
{
InitializeComponent();
}
protected override void OnSizeAllocated(double width,double height)
{
base.OnSizeAllocated(width,height);
//
//
}
这是我正在使用的模拟器:-
OnSizeAllocated() 应该调用多次。但它只会在应用程序启动时被调用一次(对于 android 模拟器)。
如何让它工作或有任何其他方式在模拟器方向改变时得到通知?
表单的 OnSizeAllocated
事件耦合到 Android Activity 的 OnConfigurationChanged
.
因此,如果 OnConfigurationChanged
未被调用,则可能是以下三种情况中的任何一种:
- 你的设备|模拟器设置为auto-rotate了吗?拉下快速设置并确保旋转已启用。
- 您从 Activity 的属性中删除了
ConfigChanges.Orientation
。
MainActivity.cs:
[Activity(Label ~~~~~, ConfigurationChanges = ConfigChanges.ScreenSize | ConfigChanges.Orientation)]
public class MainActivity : global::Xamarin.Forms.Platform.Android.FormsAppCompatActivity
- 您正在强制您的 Android 应用程序/activity 进入单一方向(通过清单、属性 and/or 本机 Android 代码)
我没有更改代码中的任何内容,也没有新的 xamarin 更新,但今天当我尝试这两种方法时都工作正常。
所以对我来说,我想重新启动 Visual studio、清理和构建项目使其工作。
我想在设备方向改变时更改页面布局。但是为此,我首先需要在方向发生变化时得到通知。
我使用了 Page 的 'SizeChanged' 事件,当我在 ios 模拟器中旋转屏幕时它工作正常。但是 android 模拟器不要求这样做。
我也试过使用 OnSizeAllocated 方法,android 模拟器也没有调用它,但在 ios 模拟器上运行良好。
public LoginPage()
{
InitializeComponent();
}
protected override void OnSizeAllocated(double width,double height)
{
base.OnSizeAllocated(width,height);
//
//
}
这是我正在使用的模拟器:-
OnSizeAllocated() 应该调用多次。但它只会在应用程序启动时被调用一次(对于 android 模拟器)。
如何让它工作或有任何其他方式在模拟器方向改变时得到通知?
表单的 OnSizeAllocated
事件耦合到 Android Activity 的 OnConfigurationChanged
.
因此,如果 OnConfigurationChanged
未被调用,则可能是以下三种情况中的任何一种:
- 你的设备|模拟器设置为auto-rotate了吗?拉下快速设置并确保旋转已启用。
- 您从 Activity 的属性中删除了
ConfigChanges.Orientation
。
MainActivity.cs:
[Activity(Label ~~~~~, ConfigurationChanges = ConfigChanges.ScreenSize | ConfigChanges.Orientation)]
public class MainActivity : global::Xamarin.Forms.Platform.Android.FormsAppCompatActivity
- 您正在强制您的 Android 应用程序/activity 进入单一方向(通过清单、属性 and/or 本机 Android 代码)
我没有更改代码中的任何内容,也没有新的 xamarin 更新,但今天当我尝试这两种方法时都工作正常。
所以对我来说,我想重新启动 Visual studio、清理和构建项目使其工作。