Rud*_*ddy 9 c# android ios xamarin xamarin.forms
我正在使用添加导航栏
MainPage = new NavigationPage (new Home ());
然后在我的Home.cs页面上我不想显示导航栏,它只适用于从此页面链接的页面我要显示导航栏.要阻止导航栏在此页面上显示,我在开头使用以下代码Home.cs.
NavigationPage.SetHasNavigationBar (this, false);
Run Code Online (Sandbox Code Playgroud)
从这里开始使用Navigation.Push.Async去另一个页面时,我会在底部得到一个"跳跃"(运动?)Home.cs.它就像它增加了下一页导航栏的高度.
在iOS上,如果将背景颜色设置Home.cs为除白色以外的任何颜色,则会导致明显的跳转.
在Android上,它似乎只会在导航回Home.cs页面时导致"跳转" .
这是我用来推送到下一页的代码.
btn.Clicked += async (sender, e) => await Navigation.PushAsync (new TestPage ());
Run Code Online (Sandbox Code Playgroud)
我试图从页面中删除所有padding.margins,但这没有帮助.当我开始一个新项目来测试这个时,我没有任何其他东西可以改变,所以我想不出任何可以解决这个问题的其他变化.
下面的Gif: 试图显示这个GIF的跳跃
注意: 请注意(灰色)页面.Home.cs
替代工作
我的情况我来自没有导航栏的SpringBoard.所以我在使用导航栏访问ContentPage时所做的就是在之前隐藏并在PushAsync之后显示导航栏.
NavigationPage.SetHasNavigationBar(page, false);
await Navigation.PushAsync(page);
NavigationPage.SetHasNavigationBar(page, true);
Run Code Online (Sandbox Code Playgroud)
不确定这是否是一个简洁的解决方案,但至少它摆脱了跳跃效果.作为副作用,它使导航栏从顶部滑入,看起来更像是一个精心设计的UI动画,然后跳转内容.
经过大量查看后,我发现这是 Xmarin.Forms 中的一个错误。没有关于何时修复或解决任何问题的消息。
请留意此处的错误报告:
https://bugzilla.xamarin.com/show_bug.cgi?id=32830
作为一种解决方法,我已经完全停止了动画的发生。添加false第二个参数将禁用动画。这看起来不太好,但也许比看到小“跳跃”问题更好。
btn.Clicked += async (sender, e) => await Navigation.PushAsync (new TestPage (), false);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2887 次 |
| 最近记录: |