using System; using HDL_ON.UI.Music; using Shared; using System.Collections.Generic; namespace HDL_ON.UI.UI2.FuntionControlView.Aks.CommonView { /// /// 自定义圆角容器 /// public class CornerFramLayout : BaseFramLayout { public const int cornerValue = 17; private int topMargin; private int leftMargin; private int bottomMargin; private int rightMargin; private int mRowNumber; private List mList; public CornerFramLayout(int width, int height) { this.BackgroundColor = MusicColor.WhiteColor; this.Width = Application.GetRealWidth(width); this.Height = Application.GetRealHeight(height); this.Radius = (uint)Application.GetRealHeight(cornerValue); } /// /// 设置边距 /// /// 上边距 /// 下边距 /// 左边距 /// 右边距 public void SetMargin(int top, int bottom, int left, int right) { this.topMargin = top; this.bottomMargin = bottom; this.leftMargin = left; this.rightMargin = right; } /// /// 设置列表数据 /// /// public void SetList(List list) { if (list == null) { list = new List(); } this.mList = list; } /// /// 获取测试列表数据 /// public List GetTestList(int count) { var list = new List(); for (int i = 1; i <= count; i++) { list.Add(i); } return list; } /// /// 加载按键界面 /// /// 一行几个元素 /// 回调 public void LoadButtonPage(int rowNumber, Action action) { if (rowNumber == 0) { return; } this.mRowNumber = rowNumber; int line = 0; int xCount = 0; for (int i = 1; i <= this.mList.Count; i++) { ButtonFramLayout buttonFram = new ButtonFramLayout(); this.AddChidren(buttonFram); buttonFram.Tag = i - 1; buttonFram.Y = Application.GetRealHeight(this.topMargin) + Application.GetRealHeight(ButtonFramLayout.heightFrameLayout * line); buttonFram.X = Application.GetRealWidth(this.leftMargin) + Application.GetRealWidth(ButtonFramLayout.widthFrameLayout * xCount); buttonFram.AddImageView(); buttonFram.AddNameView(); if (!IsLastRight(i)) { buttonFram.AddRightLine(); } if (!IsLastColumn(i)) { buttonFram.AddBottomLine(); } buttonFram.GetNameButton().Text = i.ToString(); xCount++; if (i % rowNumber == 0) { line++; xCount = 0; } buttonFram.SetClickListener((fl, btnIcon, btnName) => { action.Invoke((int)buttonFram.Tag); }); } //this.AdjustRealHeight(this.bottomMargin); } /// /// 最后一行 /// /// /// private bool IsLastColumn(int value) { int lineCount = this.mList.Count / this.mRowNumber; int number = this.mList.Count % this.mRowNumber; if (number != 0) { if (value > lineCount * this.mRowNumber) { return true; } } else { if (value > lineCount-- * this.mRowNumber) { return true; } } return false; } /// /// 最后右边那一个 /// /// /// private bool IsLastRight(int value) { if (value % this.mRowNumber == 0) { return true; }; return false; } } }