Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/330.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/184.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/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
C# Forms SetHasNavigationBar false导致PushAsync跳转_C#_Android_Ios_Xamarin_Xamarin.forms - Fatal编程技术网

C# Forms SetHasNavigationBar false导致PushAsync跳转

C# Forms SetHasNavigationBar false导致PushAsync跳转,c#,android,ios,xamarin,xamarin.forms,C#,Android,Ios,Xamarin,Xamarin.forms,我正在使用添加导航栏 MainPage=newNavigationPage(新主页()) 然后,在我的Home.cs页面上,我不想显示导航栏,我只想显示链接到此页面的页面的导航栏。要停止导航栏在此页面上显示,请使用Home.cs开头的以下代码 NavigationPage.SetHasNavigationBar (this, false); 使用Navigation.Push.Async转到另一个页面时,我在Home.cs的底部得到一个“跳跃”(移动?)。它就像是增加了下一页导航栏的高度 bt

我正在使用添加导航栏

MainPage=newNavigationPage(新主页())

然后,在我的
Home.cs
页面上,我不想显示导航栏,我只想显示链接到此页面的页面的导航栏。要停止导航栏在此页面上显示,请使用
Home.cs
开头的以下代码

NavigationPage.SetHasNavigationBar (this, false);
使用
Navigation.Push.Async
转到另一个页面时,我在
Home.cs
的底部得到一个“跳跃”(移动?)。它就像是增加了下一页导航栏的高度

btn.Clicked += async (sender, e) => await Navigation.PushAsync (new TestPage ());
在iOS上,如果将
Home.cs
上的背景色设置为除白色以外的任何颜色,则会导致明显的跳跃

在Android上,它似乎只会在导航回
Home.cs
页面时引起这种“跳跃”

这是我用来推到下一页的代码

btn.Clicked += async (sender, e) => await Navigation.PushAsync (new TestPage ());
我已尝试从页面中删除所有padding.margins,但这没有帮助。当我开始一个新的项目来测试这一点时,我没有任何其他需要改变的地方,所以我想不出任何其他的改变可以解决这个问题

Gif如下:


注意:请注意
Home.cs
(灰色)页面。

经过多次查看,我发现这是Xmarin.Forms中的一个错误。没有关于何时会有修复或任何解决方案的消息

请注意此处的错误报告:


变通(ish?) 作为一种解决方法,我已经阻止了动画的发生。添加
false
作为第二个参数将禁用动画。这看起来不太好,但也许比看到小“跳跃”问题更好


作为一种临时解决方法,您可以使用PushModalAsync,如果它适合您的应用程序的话

备选解决方案

我知道我的处境我来自一个没有导航杆的跳板。因此,当我转到带有导航栏的ContentPage时,我所做的是在PushAsync之前隐藏导航栏,并在PushAsync之后显示导航栏

NavigationPage.SetHasNavigationBar(page, false);

await Navigation.PushAsync(page);

NavigationPage.SetHasNavigationBar(page, true);

不确定这是否是一个简洁的解决方案,但至少它消除了跳跃效应。作为副作用,它使navigationbar从顶部滑入,看起来更像一个经过深思熟虑的UI动画,然后跳转内容。

它确实解决了我遇到的问题,但对于我的应用程序,我觉得它不能很好地工作。他更多的是寻找一个解决办法,以保持动画的原样,但停止“跳跃”问题。谢谢你的建议,tho,may可能会替某人处理。那太糟糕了。它持续了很长时间,但从未修复。我也面临着同样的问题。。如何解决