2016-07-06 27 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"); 
     } 
} 
相关问题