Xamarin.Forms NavigationPage PushAsync 不滚动
Posted
技术标签:
【中文标题】Xamarin.Forms NavigationPage PushAsync 不滚动【英文标题】:Xamarin.Forms NavigationPage PushAsync not scrolling 【发布时间】:2017-08-26 19:59:07 【问题描述】:我正在使用 MasterDetail 页面,并且可以从 Master 访问的内容页面很长。我正在 android 设备上尝试该应用程序,如果我访问其中一个页面创建一个新 NavigationPage,它们会正确显示,但是如果我将它们推送到导航堆栈中,或者如果我从另一个页面返回到堆栈中,滚动不再起作用。
这是创建NavigationPage的代码:
void OnItemSelected(object sender, SelectedItemChangedEventArgs e)
var item = e.SelectedItem as IMenuItem;
if (item != null && item.SubmitPageType != null)
Detail = new NavigationPage((Page)Activator.CreateInstance(item.SubmitPageType));
masterPage.ListView.SelectedItem = null;
IsPresented = false;
这是我用来将同一页面推送到导航堆栈的代码
this.Navigation.PushAsync(new MyPage());
在 Xaml 中,我尝试在 ContentPage.Content 元素中使用 ScrollView,但它不起作用,并且在页面底部截断了我的部分布局。
有没有人在 NavigationPage 和内容滚动方面遇到过类似的问题?谁能帮帮我?
谢谢
【问题讨论】:
如何导航到页面无关紧要,滚动将由页面本身的内容决定。 我同意,这就是为什么我不明白为什么如果我直接从 MasterPage 访问页面,创建一个新的 NavigationPage,滚动工作,但如果我使用 PushAsync 方法访问同一页面,它不会不工作。两种情况下的页面和内容都是一样的。 【参考方案1】:当我遇到类似问题时,自定义 NavigationPageRenderer 中的这段代码可以帮助我
[assembly: ExportRenderer(typeof(YOUR_CUSTOM_NAV_PAGE), typeof(NoAnimationNavigationPageRenderer))]
namespace CanPay.Mobile.Droid.Renderers
public class NoAnimationNavigationPageRenderer : NavigationPageRenderer
protected override void SetupPageTransition(FragmentTransaction transaction, bool isPush)
transaction.SetCustomAnimations(0, 0, 0, 0);
【讨论】:
以上是关于Xamarin.Forms NavigationPage PushAsync 不滚动的主要内容,如果未能解决你的问题,请参考以下文章
Xamarin.Forms 和 Xamarin Native 有啥区别? [关闭]
如何使用 Xamarin.Forms.Maps(无 Xamarin.Forms.GoogleMaps)在地图中应用样式或更改颜色
Xamarin Forms Prism:prism ResourceDictionary 中已存在具有键“Xamarin.Forms.NavigationPage”的资源
Xamarin.Forms.Forms.Init(e) Onlaunched 中的 FileNotFoundExeception