方向更改重置工具栏Xamarin表单

时间:2017-08-22 12:08:50

标签: android android-layout xamarin xamarin.android xamarin.forms

我正在努力实现的是覆盖工具栏的导航按钮。 我提到this链接是为了这样做而且工作正常,除非应用程序中的任何位置都有方向更改。发生方向更改时,将删除此行为。它类似于将工具栏后退按钮重置为其原始行为(返回或导航回来)。

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

底线:

  1. 我想覆盖工具栏的导航按钮(我已经实现了这个)
  2. 我希望这种行为能够在任何方向改变的情况下持续存在(我' m 被困在这里)

1 个答案:

答案 0 :(得分:1)

Android认为屏幕方向更改为configuration change,需要重新创建正在运行的Activity。这意味着首先调用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
相关问题