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(); }
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(); } }