当设备方向发生变化时,我想更改页面布局。但是,对于这一点,我首先需要在方向发生变化时得到通知。
我使用了佩奇的'SizeChanged‘事件,当我在ios模拟器中旋转屏幕时,它工作得很好。但这并不是android模拟器所要求的。
我也尝试过使用OnSizeAllocated方法,它同样不会被安卓仿真器调用,但是在ios模拟器上工作得很好。
public LoginPage()
{
InitializeComponent();
}
protected override void OnSizeAllocated(double width,double height)
{
base.OnSizeAllocated(width,height);
//
//
}
这是我使用的模拟器:-
应该多次调用OnSizeAllocated()。但是它只在应用程序启动时才被调用一次(对于android仿真器)。
我如何使它工作,或有任何其他方式得到通知时,模拟器的方向被改变?
发布于 2019-05-20 11:02:29
我没有更改代码中的任何内容,也没有新的xamarin更新,但是今天当我尝试时,这两种方法都正常工作。
因此,对我来说,我想重新启动Visual,清洁和建设项目使它工作。
发布于 2019-05-16 08:42:14
表单的OnSizeAllocated
事件耦合到Android活动的OnConfigurationChanged
。
因此,如果没有调用OnConfigurationChanged
,则可能是以下三种情况中的任何一种:
ConfigChanges.Orientation
。MainActivity.cs:
[Activity(Label ~~~~~, ConfigurationChanges = ConfigChanges.ScreenSize | ConfigChanges.Orientation)]
public class MainActivity : global::Xamarin.Forms.Platform.Android.FormsAppCompatActivity
https://stackoverflow.com/questions/56172451
复制相似问题