using System;
|
|
using System.Collections.Generic;
|
using Com.Hdl.Widget.CoverFlowViewPager;
|
|
namespace Shared
|
{
|
|
|
|
/// <summary>
|
/// UICoverFlowView 已废弃,暂用HorizontalPages代替实现
|
/// </summary>
|
public class UICoverFlowView : View
|
{
|
/// <summary>
|
/// 当前视图
|
/// </summary>
|
/// <value>The UICoverFlowView.</value>
|
HDLCoverFlowViewPager mHDLCoverFlowViewPager
|
{
|
get
|
{
|
return AndroidView as HDLCoverFlowViewPager;
|
}
|
set
|
{
|
AndroidView = value;
|
}
|
}
|
|
/// <summary>
|
/// 父容器
|
/// </summary>
|
/// <value>The parent.</value>
|
ViewGroup Parents { get; set; }
|
|
///// <summary>
|
///// 视图高度
|
///// </summary>
|
///// <value>The height.</value>
|
//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;
|
// }
|
//}
|
|
///// <summary>
|
///// 视图宽度
|
///// </summary>
|
///// <value>The width.</value>
|
//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;
|
// }
|
//}
|
|
/// <summary>
|
/// 构造函数
|
/// </summary>
|
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<Android.Views.View> mAndroidViewsList = new List<Android.Views.View>();
|
List<View> viewList = new List<View>();
|
|
private void UpdateViewsList()
|
{
|
|
mAndroidViewsList.Clear();
|
foreach (View MView in viewList)
|
{
|
mAndroidViewsList.Add(MView.AndroidView);
|
}
|
|
mHDLCoverFlowViewPager.UpdateViewsList(mAndroidViewsList);
|
}
|
|
int pageIndex;
|
/// <summary>
|
/// 设置或者获取当前的界面索引
|
/// </summary>
|
/// <value>The index of the page.</value>
|
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();
|
}
|
|
/// <summary>
|
/// 增加子控件
|
/// </summary>
|
/// <param name="view">View.</param>
|
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);
|
|
|
|
}
|
|
|
/// <summary>
|
/// 清空所有的控件
|
/// </summary>
|
public void RemoveAll()
|
{
|
viewList.Clear();
|
//base.RemoveAll();
|
UpdateViewsList();
|
}
|
|
/// <summary>
|
/// 移除指定索引对象
|
/// </summary>
|
/// <param name="index">Index.</param>
|
public void RemoveAt(int index)
|
{
|
if (GetChildren(index) != null)
|
{
|
viewList.Remove(GetChildren(index));
|
UpdateViewsList();
|
}
|
|
//base.RemoveAt(index);
|
//UpdateViewsList();
|
}
|
|
|
/// <summary>
|
/// 获取指定索引对象
|
/// </summary>
|
/// <returns>The children.</returns>
|
/// <param name="index">Index.</param>
|
public View GetChildren(int index)
|
{
|
if (viewList.Count - 1 < index || index < 0)
|
{
|
return null;
|
}
|
return viewList[index];
|
}
|
|
|
///// <summary>
|
///// 移除控件
|
///// </summary>
|
///// <param name="view">View.</param>
|
//internal virtual void Remove(View view)
|
//{
|
// if (view == null)
|
// {
|
// return;
|
// }
|
|
// mViewsList.Remove(view);
|
// UpdateViewsList(mViewsList);
|
// view.Parent = null;
|
//}
|
|
|
///// <summary>
|
///// 设置PickerView 默认选中项
|
///// </summary>
|
//public void setCurrentItems(int option1, int option2, int option3)
|
//{
|
|
// mHDLCoverFlowViewPager.SetCurrentItems(option1, option2, option3);
|
|
//}
|
|
|
///// <summary>
|
///// 设置PickerView数据
|
///// </summary>
|
//public void setNPicker(List<string> mFirstList, List<string> mSecondList, List<string> mThirdList)
|
//{
|
|
// mHDLCoverFlowViewPager.SetNPicker(mFirstList, mSecondList, mThirdList);
|
|
//}
|
|
|
///// <summary>
|
///// 设置PickerView 选中文字的颜色
|
///// </summary>
|
//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<int> OnSelectChangeEvent;
|
public Action<int> OnCoverFlowViewClickEvent;
|
|
/// <summary>
|
/// OnProgressChangeListener 继承响应事件
|
/// </summary>
|
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;
|
|
}
|
|
|
}
|
}
|
}
|