【问题标题】:How to make a carousel page with common header and footer in Xamarin.Forms如何在 Xamarin.Forms 中制作具有通用页眉和页脚的轮播页面
【发布时间】:2016-10-14 12:40:49
【问题描述】:

我正在使用具有 Android 和 IOS 项目的便携式 Xamarin.Forms(跨平台)。

我正在使用轮播页面,以便我可以滑动页面。

我只想要中间内容而不是整个页面。页眉和页脚不应滑动

您可以在下图中看到整个页面正在滑动。我只想滑动中间内容

请教我怎么做?

【问题讨论】:

    标签: android ios xamarin xamarin.forms


    【解决方案1】:

    您应该查看Xamarin.Forms.CarouselView 的预发布版本以用于您的用例:

    Nuget: `Xamarin.Forms.CarouselView 2.3.0-pre2`
    

    CarouselViewCarouselPage 的替代品。并且CarouselPage 将在未来的Xamarin.Forms 版本中标记为已弃用。

    CarouselView 是虚拟化的,在处理多个页面时,与CarouselPage 相比,内存减少了很多,并且可以像Page 中的“控件”一样使用,您可以应用页眉/页脚模板到您的页面并将CarouselView 放在中心。

    来源:https://github.com/xamarin/Xamarin.Forms.CarouselView

    【讨论】:

    • 谢谢。但我使用的是 xamarin 版本 2.0.0.6482。如果我更新 xamarin,则会发生很多错误,例如 - “找不到与给定名称匹配的资源 'android:TextAppearance.Material.Widget.Button.Inverse'” - “C:\Program Files \MSBuild\Xamarin\Android\Xamarin .Android.Common.targets(290,2): error XA5209: Unzipping failed. 请下载dl-ssl.google.com/android/repository/… 并解压到C:\Users\Administrator\AppData\Local\Xamarin\Android.Support.v13\22.1.1 \content 目录” 54 错误发生。请给我另一个解决方案
    • 这些错误可以通过清理和重建项目来修复,以便重建 Android 资源。除此之外,您可以查看使用模板向每个页面添加通用元素
    【解决方案2】:

    我使用带有水平滑动的列表视图而不是课程页面。它工作正常

    【讨论】:

      【解决方案3】:

      这是一个使用 ControlTemplates 的相对简单的重构:

      Xamarin.Forms control templates

      假设您使用的是 MVVM,然后将 ControlTemplate 分配给 ContentPage controlTemplate 属性:例如

      contentView.ControlTemplate = new SampleControlTemplate()
      

      我个人在 ControlTemplate 中使用 GridViews 来获得对布局的更有限的控制。最终输出是定义为 ContentPresenter 的区域,该区域将使用您的 ContentPage(在您的情况下为 CarouselPage)中的布局填充。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-02-02
        • 2016-04-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多