Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 方向更改将重置工具栏Xamarin窗体_Android_Android Layout_Xamarin_Xamarin.android_Xamarin.forms - Fatal编程技术网

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

Android 方向更改将重置工具栏Xamarin窗体,android,android-layout,xamarin,xamarin.android,xamarin.forms,Android,Android Layout,Xamarin,Xamarin.android,Xamarin.forms,我正试图实现的是覆盖工具栏的导航按钮。 我提到了这样做,它的工作良好的链接,除非有一个方向的变化在应用程序中的任何地方。当方向发生变化时,此行为将被删除。它将工具栏上的“后退”按钮重置为其原始行为(返回或导航返回) 我尝试了另一种方法,在工具栏上添加一个按钮,并在运行时访问它,使其可见并在需要时消失。但轮换问题仍然存在。它将按钮状态重置为布局文件中声明的原始状态 底线是: 我想覆盖工具栏的导航按钮(我已经实现了这一点) 我希望这种行为能持续下去,不管方向有什么变化(我很高兴) (卡在这里) An

我正试图实现的是覆盖工具栏的导航按钮。 我提到了这样做,它的工作良好的链接,除非有一个方向的变化在应用程序中的任何地方。当方向发生变化时,此行为将被删除。它将工具栏上的“后退”按钮重置为其原始行为(返回或导航返回)

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

底线是:

  • 我想覆盖工具栏的导航按钮(我已经实现了这一点)
  • 我希望这种行为能持续下去,不管方向有什么变化(我很高兴) (卡在这里)

  • Android将屏幕方向的改变视为一种需要重新进行跑步活动的方式。这意味着第一个被调用,然后是

    您的行为本身不会持续,但如果您在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
    

    我不明白你的意思?MainActivity(xamarin表单项目的唯一活动)OnCreate可以将按钮设置为具有此类行为1次。我尝试在MainActivity的OnCreate函数中设置一个调试点,并进行了方向更改,但没有得到任何断点。在OnConfigurationChanged的override func中,我得到了断点。如果这是这个问题唯一可能的解决方案,那么我必须更改我的需求。@Abhinash my bad,默认情况下,Xamarin.Forms在MainActivity上添加了一个属性,以阻止在方向更改时触发那些生命周期事件。查看我的编辑以了解更多信息。但这不会让整个应用程序从一开始就重新启动吗?@Abhinash不,它只是重新初始化了一些事情。