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