예제 #1
0
        public void LinearLayouterRequestLayout()
        {
            tlog.Debug(tag, $"LinearLayouterRequestLayout START");

            var view = new CollectionView(new List <string>()
            {
                "123", "456", "789"
            })
            {
                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 linearLayouter = new LinearLayouter();

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

            linearLayouter.Initialize(view);

            linearLayouter.RequestLayout(5.0f);

            linearLayouter.RequestLayout(150.0f, true);

            view.Dispose();
            linearLayouter.Dispose();

            tlog.Debug(tag, $"LinearLayouterRequestLayout END (OK)");
        }
예제 #2
0
        public void LinearLayouterRequestNextFocusableView()
        {
            tlog.Debug(tag, $"LinearLayouterRequestNextFocusableView");

            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 linearLayouter = new LinearLayouter();

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

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

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

            var orientationSize = linearLayouter.CalculateLayoutOrientationSize();

            Assert.AreEqual(orientationSize, 6);

            var scrollPosition = linearLayouter.CalculateCandidateScrollPosition(0.0f);

            Assert.AreEqual(scrollPosition, 0.0f);

            linearLayouter.NotifyItemRangeInserted(source, 0, 10);

            linearLayouter.RequestNextFocusableView(view, View.FocusDirection.Up, true);
            linearLayouter.RequestNextFocusableView(view, View.FocusDirection.Down, true);
            linearLayouter.RequestNextFocusableView(view, View.FocusDirection.PageUp, true);
            linearLayouter.RequestNextFocusableView(view, View.FocusDirection.PageDown, true);
            linearLayouter.RequestNextFocusableView(view, View.FocusDirection.Left, true);
            linearLayouter.RequestNextFocusableView(view, View.FocusDirection.Right, true);

            view.Dispose();
            linearLayouter.Dispose();

            source.Dispose();

            tlog.Debug(tag, $"LinearLayouterRequestNextFocusableView END (OK)");
        }
예제 #3
0
        public void LinearLayouterNotifyItemRemoved()
        {
            tlog.Debug(tag, $"LinearLayouterNotifyItemRemoved");

            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 linearLayouter = new LinearLayouter();

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

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

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

            linearLayouter.NotifyItemRangeInserted(source, 0, 1);
            linearLayouter.NotifyItemRemoved(source, 0);

            linearLayouter.NotifyItemRangeInserted(source, 0, 2);
            linearLayouter.NotifyItemRemoved(source, 1);

            var emptySource = new CustomEmptySource();

            linearLayouter.NotifyItemInserted(emptySource, 1);
            linearLayouter.NotifyItemRemoved(emptySource, 1);

            view.Dispose();
            linearLayouter.Dispose();

            source.Dispose();
            emptySource.Dispose();

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