我正在努力实现的是覆盖工具栏的导航按钮。 我提到this链接是为了这样做而且工作正常,除非应用程序中的任何位置都有方向更改。发生方向更改时,将删除此行为。它类似于将工具栏后退按钮重置为其原始行为(返回或导航回来)。
我尝试了另一种方法,即在工具栏中添加一个按钮并在运行时访问它,使其可见并在需要时消失。但轮换问题仍然存在。它将按钮状态重置为布局文件中声明的原始状态。
底线:
答案 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