首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >当我旋转android仿真器以将方向更改为景观模式或画模式时,不会调用“OnSizeAllocated”。

当我旋转android仿真器以将方向更改为景观模式或画模式时,不会调用“OnSizeAllocated”。
EN

Stack Overflow用户
提问于 2019-05-16 07:57:17
回答 2查看 1.1K关注 0票数 2

当设备方向发生变化时,我想更改页面布局。但是,对于这一点,我首先需要在方向发生变化时得到通知。

我使用了佩奇的'SizeChanged‘事件,当我在ios模拟器中旋转屏幕时,它工作得很好。但这并不是android模拟器所要求的。

我也尝试过使用OnSizeAllocated方法,它同样不会被安卓仿真器调用,但是在ios模拟器上工作得很好。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public LoginPage()    
{
  InitializeComponent();
}

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

这是我使用的模拟器:-

应该多次调用OnSizeAllocated()。但是它只在应用程序启动时才被调用一次(对于android仿真器)。

我如何使它工作,或有任何其他方式得到通知时,模拟器的方向被改变?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-05-20 11:02:29

我没有更改代码中的任何内容,也没有新的xamarin更新,但是今天当我尝试时,这两种方法都正常工作。

因此,对我来说,我想重新启动Visual,清洁和建设项目使它工作。

票数 0
EN

Stack Overflow用户

发布于 2019-05-16 08:42:14

表单的OnSizeAllocated事件耦合到Android活动的OnConfigurationChanged

因此,如果没有调用OnConfigurationChanged,则可能是以下三种情况中的任何一种:

  1. 你的设备\\模拟器设置为自动旋转吗?拉下快速设置并确保已启用旋转。

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

MainActivity.cs:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[Activity(Label ~~~~~, ConfigurationChanges = ConfigChanges.ScreenSize | ConfigChanges.Orientation)]
public class MainActivity : global::Xamarin.Forms.Platform.Android.FormsAppCompatActivity
  1. 您正在强制Android应用程序/活动进入单一方向(通过清单、属性和/或本机Android代码)。
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56172451

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文