コード例 #1
0
ファイル: TSGridLayouter.cs プロジェクト: wonrst/TizenFX
        public void GridLayouterNotifyItemRangeMoved()
        {
            tlog.Debug(tag, $"GridLayouterNotifyItemRangeMoved");

            var view = new CollectionView(new List <string>()
            {
                "123", "456"
            })
            {
                Header    = new RecyclerViewItem(),
                Footer    = new RecyclerViewItem(),
                IsGrouped = true,
            };

            Assert.IsNotNull(view, "Should not be null");

            view.GroupFooterTemplate = new DataTemplate(typeof(RecyclerViewItem));
            view.GroupHeaderTemplate = new DataTemplate(typeof(RecyclerViewItem));
            view.ItemTemplate        = new DataTemplate(typeof(RecyclerViewItem));

            var gridLayouter = new GridLayouter();

            Assert.IsNotNull(gridLayouter, "Should not be null");

            gridLayouter.Initialize(view);
            gridLayouter.RequestLayout(100.0f);

            var source = new CustomGroupItemSource(view)
            {
                Position = 1,
            };

            var orientationSize = gridLayouter.CalculateLayoutOrientationSize();

            Assert.AreEqual(orientationSize, 6);

            var scrollPosition = gridLayouter.CalculateCandidateScrollPosition(0.0f);

            Assert.AreEqual(scrollPosition, 0.0f);

            gridLayouter.NotifyItemRangeInserted(source, 0, 10);
            gridLayouter.NotifyItemRangeMoved(source, 11, 16, 5);

            view.Dispose();
            gridLayouter.Dispose();

            source.Dispose();

            tlog.Debug(tag, $"GridLayouterNotifyItemRangeMoved END (OK)");
        }