using System;
|
using System.Collections.Generic;
|
using HDL_ON.UI.CSS;
|
using Shared;
|
namespace HDL_ON.UI
|
{
|
public class ListCellDialog
|
{
|
/// <summary>
|
/// 数据集合
|
/// </summary>
|
Dictionary<string, string> items = new Dictionary<string, string>();
|
/// <summary>
|
/// 当前选中目标
|
/// </summary>
|
string curItem = "";
|
/// <summary>
|
/// 回掉方法
|
/// </summary>
|
Action<string,string> fallbackAction;
|
|
|
|
public ListCellDialog(Dictionary<string, string> list,string curItem,Action<string,string> fallbackAction)
|
{
|
items = list;
|
this.curItem = curItem;
|
this.fallbackAction = fallbackAction;
|
}
|
|
/// <summary>
|
/// 加载在右边的弹窗
|
/// </summary>
|
public void ShowRightDialog()
|
{
|
|
Dialog dialog = new Dialog();
|
FrameLayout dialogBodyView = new FrameLayout()
|
{
|
BackgroundColor = CSS_Color.DialogTransparentColor1,
|
};
|
dialog.AddChidren(dialogBodyView);
|
|
int itemCount = 1;
|
var itemViewHeight = Application.GetRealHeight(73);
|
switch(items.Count)
|
{
|
case 0:
|
case 1:
|
itemCount = 1;
|
itemViewHeight = Application.GetRealHeight(73);
|
break;
|
case 2:
|
itemCount = 2;
|
itemViewHeight = Application.GetRealHeight(111);
|
break;
|
case 3:
|
itemCount = 3;
|
itemViewHeight = Application.GetRealHeight(155);
|
break;
|
case 4:
|
itemCount = 4;
|
itemViewHeight = Application.GetRealHeight(199);
|
break;
|
default:
|
itemCount = 5;
|
itemViewHeight = Application.GetRealHeight(243);
|
break;
|
}
|
|
FrameLayout contentView;
|
contentView = new FrameLayout()
|
{
|
X = Application.GetRealWidth(205),
|
Y = Application.GetRealHeight(106),
|
Width = Application.GetRealWidth(160),
|
Height = itemViewHeight,
|
BackgroundImagePath = "Public/ListCellbg/ListCellbg" + itemCount.ToString() + ".png",
|
};
|
dialogBodyView.AddChidren(contentView);
|
|
VerticalScrolViewLayout itemsView;
|
itemsView = new VerticalScrolViewLayout()
|
{
|
X = Application.GetRealWidth(8),
|
Y = Application.GetRealHeight(14),
|
Width = Application.GetRealWidth(160),
|
Height = Application.GetRealHeight(44 * itemCount),
|
ScrollEnabled = itemCount == 5
|
};
|
contentView.AddChidren(itemsView);
|
|
bool isFrist = true;
|
foreach (var item in items)
|
{
|
if (isFrist)
|
{
|
isFrist = false;
|
}
|
else
|
{
|
itemsView.AddChidren(new Button()
|
{
|
X = Application.GetRealWidth(24),
|
Width = Application.GetRealWidth(112),
|
Height = Application.GetRealWidth(1),
|
BackgroundColor = CSS_Color.DividingLineColor,
|
});
|
}
|
Button btnItem = new Button()
|
{
|
X = Application.GetRealWidth(24),
|
Width = Application.GetRealWidth(128),
|
Height = Application.GetRealHeight(44),
|
Text = item.Value,
|
TextColor = CSS_Color.FirstLevelTitleColor,
|
SelectedTextColor = CSS_Color.MainColor,
|
TextSize = CSS_FontSize.SubheadingFontSize,
|
TextAlignment = TextAlignment.CenterLeft,
|
IsSelected = item.Key == curItem
|
};
|
itemsView.AddChidren(btnItem);
|
|
|
btnItem.MouseUpEventHandler = (sender, e) =>
|
{
|
fallbackAction?.Invoke(item.Key, item.Value);
|
dialog.Close();
|
};
|
}
|
dialogBodyView.MouseUpEventHandler = (sender, e) =>
|
{
|
dialog.Close();
|
};
|
|
dialog.Show();
|
|
|
}
|
|
|
}
|
}
|