方向更改将重置工具栏 Xamarin 窗体



我真正想要实现的是覆盖工具栏的导航按钮。 我参考了这个链接来这样做,除非应用程序中任何地方的方向发生变化,否则它工作正常。发生方向更改时,将删除此行为。它有点将工具栏后退按钮重置为其原始行为(返回或导航(。

我尝试了另一种方法,方法是在工具栏中添加一个按钮并在运行时访问它,使其可见并在需要时消失。 但旋转问题在这里仍然存在。 它将按钮状态重置为布局文件中声明的原始状态。

底线:

  1. 我想覆盖工具栏的导航按钮(我已经实现了(
  2. 我希望无论方向发生任何变化,这种行为都能持续存在(我是 卡在这里(

Android 将屏幕方向更改视为需要重新创建正在运行的活动的配置更改。这意味着首先调用 OnDestroy((,然后调用 OnCreate((。

您的行为本身不会持续存在,但是如果您在OnCreate((中执行所需的更改,即使在方向更改后,您也将具有相同的设置。这当然是指您在运行时添加按钮的第二次尝试。

编辑:如果您的 MainActivity 在其上定义了以下属性,则不会调用 OnDestroy 和 OnCreate:

ConfigurationChanges = ConfigChanges.ScreenSize | ConfigChanges.Orientation

如果删除 ConfigChanges.Orientation,则当屏幕方向更改时,将调用这些 OnDestroy 和 OnCreate。修复后的外观如下:

[Activity(Label = "AppSomething", Icon = "@drawable/icon", Theme = "@style/MainTheme", MainLauncher = true, ConfigurationChanges = ConfigChanges.ScreenSize)]
public class MainActivity : global::Xamarin.Forms.Platform.Android.FormsAppCompatActivity

最新更新