【发布时间】:2022-01-14 00:42:02
【问题描述】:
在 Xamarin Forms 5.0 中,我创建了一个 TabbedPage 并将 NavigationPage 实例嵌套为其子级。我注意到页面推送动画不像 iOS 那样从右向左滑动。如何更改默认过渡动画?请注意,我不想为动画使用第三方库。理想情况下,我想使用自定义渲染器/效果来解决这个问题。
private void SetMainPage()
{
var tabbedPage = new Xamarin.Forms.TabbedPage { BarBackgroundColor = Color.White };
Xamarin.Forms.PlatformConfiguration.AndroidSpecific.TabbedPage.SetToolbarPlacement(tabbedPage, ToolbarPlacement.Bottom);
tabbedPage.Children.Add(new NavigationPage(new AboutPage()) { BarBackgroundColor = Color.Black, Title = "Tab1", IconImageSource = "icon_about" });
tabbedPage.Children.Add(new NavigationPage(new AboutPage()) { BarBackgroundColor = Color.Black, Title = "Tab2", IconImageSource = "icon_feed" });
MainPage = tabbedPage;
}
【问题讨论】:
-
复制this renderer file。请参阅“案例 TransitionType.SlideFromRight”。根据需要进行调整。
-
我试过这个,但它不能 100% 工作。在退出动画期间,被弹出的页面似乎比正在显示的页面移动得更快,即使根据 xml 文件它们都有 300 毫秒的动画。如果您为每个页面设置不同的背景颜色,这很容易看出。我在动画结束时看到屏幕右侧出现白色闪光。
-
看起来默认过渡动画设置为 220 毫秒。我将其更改为 300 毫秒,并且效果很好!请参阅github.com/xamarin/Xamarin.Forms/blob/… 如果您可以提交所有内容作为答案,我会接受。
标签: xamarin xamarin.forms xamarin.android