示例#1
0
        private void Initialize(RecycleAdapter adapter, RecycleLayoutManager layoutManager)
        {
            Scrolling += OnScrolling;

            mAdapter = adapter;
            mAdapter.OnDataChanged += OnAdapterDataChanged;

            mLayoutManager           = layoutManager;
            mLayoutManager.Container = ContentContainer;
            mLayoutManager.ItemSize  = mAdapter.CreateRecycleItem().Size;
            mLayoutManager.DataCount = mAdapter.Data.Count;

            InitializeItems();
        }
示例#2
0
        private void InitializeItems()
        {
            for (int i = Children.Count - 1; i > -1; i--)
            {
                Children[i].Unparent();
                notifications[i].Notified -= OnItemSizeChanged;
                notifications.RemoveAt(i);
            }

            for (int i = 0; i < totalItemCount; i++)
            {
                RecycleItem item = adapter.CreateRecycleItem();
                item.DataIndex = i;
                item.Name      = "[" + i + "] recycle";

                if (i < adapter.Data.Count)
                {
                    adapter.BindData(item);
                }
                Add(item);

                PropertyNotification noti = item.AddPropertyNotification("size", PropertyCondition.Step(0.1f));
                noti.Notified += OnItemSizeChanged;
                notifications.Add(noti);
            }

            layoutManager.Layout(0.0f);

            if (ScrollingDirection == Direction.Horizontal)
            {
                ContentContainer.SizeWidth = layoutManager.CalculateLayoutOrientationSize();
            }
            else
            {
                ContentContainer.SizeHeight = layoutManager.CalculateLayoutOrientationSize();
            }
        }