在 Xamarin Forms 中实现 Banner

Method 1: Xamarin.Forms.CarouselView

博客:Flip through items with Xamarin.Forms CarouselView

Github: https://github.com/jamesmontemagno/Xamarin.Forms-Monkeys

效果图:

4816610-33617096c0ecab35.gif
ezgif.com-video-to-gif.gif

Method 2: CarouselView.FormsPlugin

这个项目也是有计划实现 无限轮播这个功能的:CarouselView roadmap, 建议你联系这个作者 Alexander

目前的话可以使用递归定期改变 bannerposition 去实现这个功能(我能想到的办法)。我这里的代码实现的有点粗糙,具体细节需要您那边根据自己需要来优化了。

public partial class MainPage : ContentPage
    {
        MainViewModel _vm;

        public MainPage()
        {
            InitializeComponent();

            Title = "CarouselView";

            BindingContext = _vm = new MainViewModel();

            ChangedMapData();
        }

        //position ==> 0 -> 1 -> 2
        void ChangedMapData()
        {
            Task.Delay(4000).ContinueWith(t =>
            {
                if(carousel.Position%3 == 2)
                {
                    carousel.Position = 0;
                    Debug.WriteLine("carousel.Position == " + carousel.Position);
                    ChangedMapData();//This is for repeate every xs.
                }
                else
                {
                    carousel.Position++;
                    ChangedMapData();
                }
            }, TaskScheduler.FromCurrentSynchronizationContext());
        }

        ......
    }

推荐使用 method 2, 效果还不错

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值