2016-07-06 57 views
0

我是Xamarin格式的新頁面。在Android上,我使用ViewPager加載圖像,並且用戶在頁面上滑動。由於Android有適配器,所有視圖都不會立即初始化。現在我想轉移到Xamarin表格並看到有Carousel Page。它的行爲與ViewPager相同嗎只根據需要加載頁面?Xamarin:旋轉木馬頁面是否將所有頁面加載到一個

回答

1

Xamarin.FormsCarouselPage不支持UI虛擬化(回收)。

根據頁面/子項的數量,初始化性能和內存使用率可能會成爲問題。

優選VisualElement使用是基本上浪CarouselPageCarouselView並且已經爲每個平臺進行了優化。

博客:Xamarin.Forms CarouselView

的NuGet:Xamarin.Forms.CarouselView(目前在發行前)

FYI:我只是看着來源爲Android的渲染器(CarouselViewRenderer.cs),它確實實現RecyclerView ..

0

如果您阻止在頁面的構造函數中調用InitializeComponent,則可能會影響加載時間。

public interface CarouselChildPage { 
    void childAppearing(); 
    void childDissapearing(); 
} 

public partial class MainPage : CarouselPage { 
    CarouselPageChild previousPage; 

    protected override void OnCurrentPageChanged() { 
      base.OnCurrentPageChanged(); 
      if (previousPage != null) 
       previousPage.childDissapearing(); 

      int index = Children.IndexOf(CurrentPage); 
      CarouselPageChild childPage = Children[index] as CarouselPageChild; 
      childPage.childAppearing(); 
      previousPage = childPage; 
     } 
} 


public partial class FriendsListPage : ContentPage, CarouselPageChild { 
     bool isLoaded = false; 

     public FriendsListPage() { 
       // Remove Initialise Component Here  
     } 

     public void childAppearing() { 
      Logger.log("My Appearing"); 
      if (!isLoaded){ 
       InitializeComponent(); 
       isLoaded = true; 
      } 
     } 

     public void childDissapearing() { 
      Logger.log("My Disappearing"); 
     } 
} 
相關問題