using System; using System.Collections.Generic; using Com.Hdl.Widget.CoverFlowViewPager; namespace Shared { /// /// UICoverFlowView 已废弃,暂用HorizontalPages代替实现 /// public class UICoverFlowView : View { /// /// 当前视图 /// /// The UICoverFlowView. HDLCoverFlowViewPager mHDLCoverFlowViewPager { get { return AndroidView as HDLCoverFlowViewPager; } set { AndroidView = value; } } /// /// 父容器 /// /// The parent. ViewGroup Parents { get; set; } ///// ///// 视图高度 ///// ///// The height. //public override int Height //{ // get // { // return base.Height; // } // set // { // base.Height = value; // if (!IsCanRefresh) // { // return; // } // var layoutParameters = realViewGroup.LayoutParameters; // layoutParameters.Height = Height; // realViewGroup.LayoutParameters = layoutParameters; // } //} ///// ///// 视图宽度 ///// ///// The width. //public override int Width //{ // get // { // return base.Width; // } // set // { // base.Width = value; // if (!IsCanRefresh) // { // return; // } // var layoutParameters = realViewGroup.LayoutParameters; // layoutParameters.Width = Width; // realViewGroup.LayoutParameters = layoutParameters; // } //} /// /// 构造函数 /// public UICoverFlowView() { mHDLCoverFlowViewPager = new HDLCoverFlowViewPager(Application.Activity); //viewList.Add(new Button { }); //UpdateViewsList(); mHDLCoverFlowViewPager.InitBanner(mAndroidViewsList, true, 15f)//开启3D画廊效果 .AddPageMargin(0, 100)//参数1page之间的间距,参数2中间item距离边界的间距 .FinishConfig()//这句必须加 .AddGalleryListener(new OnSelectChangeListener(this)); Parents = new ViewGroup(); //Parents.AddChidren(this); //mOnSelectChangeListener = new OnSelectChangeListener(this); //mHDLCoverFlowViewPager.SetOptionsSelectChangeListener(mOnSelectChangeListener); } List mAndroidViewsList = new List(); List viewList = new List(); private void UpdateViewsList() { mAndroidViewsList.Clear(); foreach (View MView in viewList) { mAndroidViewsList.Add(MView.AndroidView); } mHDLCoverFlowViewPager.UpdateViewsList(mAndroidViewsList); } int pageIndex; /// /// 设置或者获取当前的界面索引 /// /// The index of the page. public int PageIndex { get { return pageIndex; } set { if (value < 0 || viewList.Count < value) { return; } pageIndex = value; mHDLCoverFlowViewPager.SetCurrentItem(pageIndex); } } public void Remove(View view) { if (view == null) { return; } viewList.Remove(view); //realViewGroup.RemoveView(view.AndroidView); //view.Parent = null; //base.Remove(view); //UpdateViewsList(); } /// /// 增加子控件 /// /// View. public void AddChidren(View view) { view.Parent = Parents; viewList.Add(view); UpdateViewsList(); view.Refresh(); if (view is ViewGroup) { var tempViewGroup = (ViewGroup)view; for (int i = 0; i < tempViewGroup.ChildrenCount; i++) { tempViewGroup.GetChildren(i).Refresh(); } } //base.AddChidren(view); } /// /// 清空所有的控件 /// public void RemoveAll() { viewList.Clear(); //base.RemoveAll(); UpdateViewsList(); } /// /// 移除指定索引对象 /// /// Index. public void RemoveAt(int index) { if (GetChildren(index) != null) { viewList.Remove(GetChildren(index)); UpdateViewsList(); } //base.RemoveAt(index); //UpdateViewsList(); } /// /// 获取指定索引对象 /// /// The children. /// Index. public View GetChildren(int index) { if (viewList.Count - 1 < index || index < 0) { return null; } return viewList[index]; } ///// ///// 移除控件 ///// ///// View. //internal virtual void Remove(View view) //{ // if (view == null) // { // return; // } // mViewsList.Remove(view); // UpdateViewsList(mViewsList); // view.Parent = null; //} ///// ///// 设置PickerView 默认选中项 ///// //public void setCurrentItems(int option1, int option2, int option3) //{ // mHDLCoverFlowViewPager.SetCurrentItems(option1, option2, option3); //} ///// ///// 设置PickerView数据 ///// //public void setNPicker(List mFirstList, List mSecondList, List mThirdList) //{ // mHDLCoverFlowViewPager.SetNPicker(mFirstList, mSecondList, mThirdList); //} ///// ///// 设置PickerView 选中文字的颜色 ///// //public void setTextColorCenter(uint mColor , int indexID) { // byte r, g, b, a; // r = (byte)(mColor / 256 / 256 % 256); // g = (byte)(mColor / 256 % 256); // b = (byte)(mColor % 256); // a = (byte)(mColor / 256 / 256 / 256 % 256); // mHDLCoverFlowViewPager.SetTextColorCenter(Android.Graphics.Color.Argb(a, r, g, b), indexID); //} public Action OnSelectChangeEvent; public Action OnCoverFlowViewClickEvent; /// /// OnProgressChangeListener 继承响应事件 /// OnSelectChangeListener mOnSelectChangeListener; public class OnSelectChangeListener : Java.Lang.Object, HDLCoverFlowViewPager.IOnClickGalleryListener { UICoverFlowView _UICoverFlowView; public OnSelectChangeListener(UICoverFlowView view) { _UICoverFlowView = view; } public void OnGalleryClick(int p0) { _UICoverFlowView.OnCoverFlowViewClickEvent?.Invoke(p0); _UICoverFlowView.pageIndex = p0; } public void OnGalleryPositionChange(int p0) { _UICoverFlowView.OnSelectChangeEvent?.Invoke(p0); _UICoverFlowView.pageIndex = p0; } } } }