2017-04-01 29 views
0

我正在使用MasterDetail页面,并且可以从主页重新获得的内容页面相当长。我在Android设备上尝试应用,如果我访问其中一个创建新的NavigationPage的页面,它们会正确显示,但是如果我将它们推入导航堆栈,或者如果我从另一个页面将它们移回到堆栈,滚动不再起作用。Xamarin.Forms NavigationPage PushAsync不滚动

这是创造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,我的代码我试过在ScrollView中使用ContentPage.Content元素,但它不起作用,它将页面底部的部分布局剪掉。

有没有人遇到与NavigationPage和内容滚动类似的问题?谁能帮我?

感谢

+0

它不应该不管你如何浏览网页,滚动会的内容确定页面本身。 – Jason

+0

我同意,这就是为什么我无法弄清楚为什么如果我直接从MasterPage访问页面,创建一个新的NavigationPage,滚动工作,但如果我使用PushAsync方法访问同一页面,它不起作用。这两种情况下的页面和内容都是相同的。 –

回答

0

当我面对呈三角问题,这个代码定制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); 
     } 
    } 
}