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可能会替某人处理。那太糟糕了。它持续了很长时间,但从未修复。我也面临着同样的问题。。如何解决