2017-04-01 61 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); 
     } 
    } 
}