mac
2024-07-25 3f6685c77beeb12baf840733fb890860f4c26e7c
HDL_ON/UI/UI2/FuntionControlView/Aks/CommonView/CornerFramLayout.cs
@@ -4,6 +4,7 @@
using System.Collections.Generic;
using HDL_ON.UI.UI2.FuntionControlView.Aks.Entity;
namespace HDL_ON.UI.UI2.FuntionControlView.Aks.CommonView
{
    /// <summary>
@@ -15,6 +16,8 @@
        private int leftMargin;
        private int bottomMargin;
        private int rightMargin;
        private int mWidth;
        private int mHeight;
        /// <summary>
        /// 一行几个元素
        /// </summary>
@@ -23,12 +26,14 @@
        /// 列表最大值
        /// </summary>
        private int mListCount;
        public Action<KeypadEntity> selectAction = null;
        /// <summary>
        /// 当前选择的索引(内部使用)
        /// 按键回调
        /// </summary>
        private int CurrnetSelectIndex = -1;
        public Action<KeypadEntity> selectKeyAction = null;
        /// <summary>
        /// 影片回调
        /// </summary>
        public Action<MovieLibrary> selectImageAction = null;
        /// <summary>
@@ -43,6 +48,8 @@
            this.Width = Application.GetRealWidth(width);
            this.Height = Application.GetRealHeight(height);
            this.Radius = (uint)Application.GetRealHeight(radius);
            this.mWidth = this.Width;
            this.mHeight = this.Height;
        }
@@ -68,7 +75,7 @@
        /// </summary>
        public List<KeypadEntity> GetTestList()
        {
            return AksCommonMethod.Current.GetTYYKeypadList();
            return AksCommonMethod.Current.GetTYYKeypadList(null);
        }
        /// <summary>
@@ -76,8 +83,13 @@
        /// </summary>
        /// <param name="mList">列表</param>
        /// <param name="mRowNumber">一行多少个元素</param>
        public void LoadButtonPage(List<KeypadEntity> mList, int mRowNumber)
        /// <param name="defaultIndex">默认值索引范围[0,mList.count-1],值超出范围视为无效</param>
        public void LoadButtonPage(List<KeypadEntity> mList, int mRowNumber, int defaultIndex = -1)
        {
            if (mList == null || mList.Count == 0)
            {
                return;
            }
            if (mRowNumber == 0)
            {
                return;
@@ -114,17 +126,29 @@
                    line++;
                    xCount = 0;
                }
                //不支持按键点击背景颜色
                if (!keypad.isClicked)
                {
                    buttonFram.GetImageButton().Alpha = 0.5f;
                    buttonFram.GetNameButton().TextColor =unBackgroundColor;
                    buttonFram.SetClick(false);
                }
                buttonFram.SetClickListener((fl, btnIcon, btnName) =>
                {
                    if (buttonFram.Tag != null)
                    if (buttonFram.Tag == null)
                    {
                        selectAction?.Invoke((KeypadEntity)buttonFram.Tag);
                        return;
                    }
                    selectKeyAction?.Invoke((KeypadEntity)buttonFram.Tag);
                });
                //if (CurrnetSelectIndex != -1 && CurrnetSelectIndex == i)
                //if (defaultIndex != -1 && defaultIndex == i)
                //{
                //    selectAction?.Invoke((int)buttonFram.Tag);
                //    if (buttonFram.Tag != null && buttonFram.Tag is KeypadEntity)
                //    {
                //        selectAction?.Invoke((KeypadEntity)buttonFram.Tag);
                //    }
                //}
@@ -135,10 +159,14 @@
        /// 动态加载按键界面
        /// </summary>
        /// <param name="mList">列表</param>
        /// <param name="list">列表中索引,表示某一条宽度加宽</param>
        public void LoadButtonPage(List<KeypadEntity> mList, List<int> list)
        /// <param name="list"> 列表中索引,表示某一条宽度加宽,没有默认(new List<int>)</param>
        /// <param name="defaultIndex">默认值索引范围[0,mList.count-1],值超出范围视为无效</param>
        public void LoadButtonPage(List<KeypadEntity> mList, List<int> list,int defaultIndex=-1)
        {
            if (mList == null || mList.Count == 0)
            {
                return;
            }
            int currnetheightValue = 0;
            int currnetWidthValue = 0;
            //获取相对一个纬度值
@@ -187,18 +215,29 @@
                    currnetheightValue += ButtonFramLayout.heightFrameLayout;
                    currnetWidthValue = 0;
                }
                //不支持按键点击背景颜色
                if (!keypad.isClicked)
                {
                    buttonFram.GetImageButton().Alpha = 0.5f;
                    buttonFram.GetNameButton().TextColor = unBackgroundColor;
                    buttonFram.SetClick(false);
                }
                buttonFram.SetClickListener((fl, btnIcon, btnName) =>
                {
                    if (buttonFram.Tag != null)
                    if (buttonFram.Tag == null)
                    {
                        selectAction?.Invoke((KeypadEntity)buttonFram.Tag);
                        return;
                    }
                    selectKeyAction?.Invoke((KeypadEntity)buttonFram.Tag);
                });
                //if (CurrnetSelectIndex != -1 && CurrnetSelectIndex == i)
                //if (defaultIndex != -1 && defaultIndex == i)
                //{
                //    selectAction?.Invoke((int)buttonFram.Tag);
                //    if (buttonFram.Tag != null && buttonFram.Tag is KeypadEntity)
                //    {
                //        selectAction?.Invoke((KeypadEntity)buttonFram.Tag);
                //    }
                //}
            }
        }
@@ -206,19 +245,24 @@
        /// <summary>
        ///动态加载数字按键界面
        /// </summary>
        /// <param name="mList">列表</param>
        /// <param name="defaultIndex">默认值索引范围[0,mList.count-1],值超出范围视为无效</param>
        public void LoadNumberButtonPage(List<KeypadEntity> mList)
        {
            if (mList == null || mList.Count == 0)
            {
                return;
            }
            int currnetheightValue = 0;
            int currnetWidthValue = 0;
            int heightMaxValue = 84;
            int heightMaxValue = 84 - 6;
            int widthMaxValue = 78;
            //获取相对一个纬度值
            int heightDimensionValue = this.Height - Application.GetRealHeight(this.topMargin) - Application.GetRealHeight(this.bottomMargin) - Application.GetRealHeight(heightMaxValue / 2);
            int widthDimensionValue = this.Width - Application.GetRealWidth(this.leftMargin) - Application.GetRealWidth(this.rightMargin) - Application.GetRealHeight(widthMaxValue / 2);
            for (int i = 1; i <= mList.Count; i++)
            for (int i = 0; i < mList.Count; i++)
            {
                var keypad = mList[i - 1];
                var keypad = mList[i];
                Button button = new Button
                {
                    Y = Application.GetRealHeight(this.topMargin) + Application.GetRealHeight(currnetheightValue),
@@ -232,7 +276,9 @@
                    IsBold = true,
                    Tag = keypad,
                    BackgroundColor = MusicColor.WhiteColor,
                    SelectedBackgroundColor = 0xff454635,
                    SelectedBackgroundColor = 0xFFF2F3F7,
                    Radius = (uint)Application.GetRealHeight(8),
                    SelectedTextColor = MusicColor.TextColor,
                };
                this.AddChidren(button);
@@ -242,21 +288,25 @@
                    currnetheightValue += heightMaxValue;
                    currnetWidthValue = 0;
                }
                button.MouseDownEventHandler += (sen, e) =>
                //不支持按键点击背景颜色
                if (!keypad.isClicked)
                {
                    if (button.Tag == null || ((KeypadEntity)button.Tag).keypad == "none")
                    button.TextColor =unBackgroundColor;
                }
                button.MouseUpEventHandler += (sen, e) =>
                {
                    if (button.Tag == null || ((KeypadEntity)button.Tag).keypad == "none"|| !((KeypadEntity)button.Tag).isClicked)
                    {
                        return;
                    }
                    button.IsSelected = true;
                    selectAction?.Invoke((KeypadEntity)button.Tag);
                };
                button.MouseUpEventHandler += (sen, e) =>
                {
                    button.IsSelected = false;
                    selectKeyAction?.Invoke((KeypadEntity)button.Tag);
                    SetButtonIsSelected(button);
                };
                //if (CurrnetSelectIndex != -1 && CurrnetSelectIndex == i)
                //if (defaultIndex != -1 && defaultIndex == i)
                //{
                //    selectAction?.Invoke((int)buttonFram.Tag);
                //}
@@ -265,9 +315,16 @@
        /// <summary>
        /// 动态加载图片界面
        /// 影片布局
        /// </summary>
        public void LoadImagePage(List<KeypadEntity> mList)
        /// <param name="mList">列表</param>
        /// <param name="defaultIndex">默认值索引范围[0,mList.count-1],值超出范围视为无效</param>
        public void LoadImagePage(List<MovieLibrary> mList)
        {
            if (mList == null || mList.Count == 0)
            {
                return;
            }
            int currnetheightValue = 0;
            int currnetWidthValue = 0;
            int heightMaxValue = ImageFramlayout.heightFrameLayout;
@@ -275,15 +332,17 @@
            //获取相对一个纬度值
            int heightDimensionValue = this.Height - Application.GetRealHeight(this.topMargin) - Application.GetRealHeight(this.bottomMargin) - Application.GetRealHeight(heightMaxValue / 2);
            int widthDimensionValue = this.Width - Application.GetRealWidth(this.leftMargin) - Application.GetRealWidth(this.rightMargin) - Application.GetRealHeight(widthMaxValue / 2);
            for (int i = 1; i <= mList.Count; i++)
            for (int i = 0; i < mList.Count; i++)
            {
                var keypad = mList[i - 1];
                var movieLibrary = mList[i];
                ImageFramlayout imageFram = new ImageFramlayout();
                imageFram.AddView(this);
                imageFram.Tag = keypad;
                imageFram.Tag = movieLibrary;
                imageFram.Y = Application.GetRealHeight(this.topMargin) + Application.GetRealHeight(currnetheightValue);
                imageFram.X = Application.GetRealWidth(currnetWidthValue);
                imageFram.btnName.Text = keypad.name;
                imageFram.btnName.Text = movieLibrary.name;
                imageFram.btnImage.ImageBytes = movieLibrary.imageBytes;
                imageFram.btnScore.Text = movieLibrary.rating;
                currnetWidthValue += (widthMaxValue + 8);//8是隔间值
                if (widthDimensionValue < Application.GetRealWidth(currnetWidthValue))
                {
@@ -293,24 +352,29 @@
                imageFram.SetClickListener((fl) =>
                {
                    if (imageFram.Tag != null)
                    if (imageFram.Tag != null&& imageFram.Tag is MovieLibrary)
                    {
                        selectAction?.Invoke((KeypadEntity)imageFram.Tag);
                        selectImageAction?.Invoke((MovieLibrary)imageFram.Tag);
                    }
                });
                //if (CurrnetSelectIndex != -1 && CurrnetSelectIndex == i)
                //{
                //    selectAction?.Invoke((int)imageFram.Tag);
                //    selectImageAction?.Invoke((int)imageFram.Tag);
                //}
            }
        }
        /// <summary>
        /// 动态加载图片界面
        /// 影片布局
        /// </summary>
        /// <param name="mRowNumber">一行多少个元素</param>
        public void LoadImagePage(List<KeypadEntity> mList, int mRowNumber)
        /// <param name="defaultIndex">默认值索引范围[0,mList.count-1],值超出范围视为无效</param>
        public void LoadImagePage(List<MovieLibrary> mList, int mRowNumber)
        {
            if (mList == null || mList.Count == 0)
            {
                return;
            }
            if (mRowNumber == 0)
            {
                return;
@@ -338,30 +402,127 @@
                }
                imageFram.SetClickListener((fl) =>
                {
                    if (imageFram.Tag != null)
                    if (imageFram.Tag != null && imageFram.Tag is MovieLibrary)
                    {
                        selectAction?.Invoke((KeypadEntity)imageFram.Tag);
                        selectImageAction?.Invoke((MovieLibrary)imageFram.Tag);
                    }
                });
                //if (CurrnetSelectIndex != -1 && CurrnetSelectIndex == i)
                //{
                //    selectAction?.Invoke((int)imageFram.Tag);
                //    selectImageAction?.Invoke((MovieLibrary)imageFram.Tag);
                //}
            }
        }
        /// <summary>
        /// 设置初始选择(请在初始化完成之前调用)
       private int currnetheightValue1 = 0;
       private int currnetWidthValue1 = 0;
       private int heightMaxValue1 = ImageFramlayout.heightFrameLayout;
       private int widthMaxValue1 = ImageFramlayout.widthFrameLayout;
        //获取相对一个纬度值
       private int widthDimensionValue1 = Application.GetRealWidth(343) - Application.GetRealHeight(ImageFramlayout.widthFrameLayout / 2);
        /// <summary>
        /// 加载影片列表布局
        /// (特殊布局)
        /// </summary>
        /// <param name="index">从列表0开始计算第一个元素,设置超过列表最大(new List().count-1)值视为无效</param>
        public void SetIndex(int index = -1)
        /// <param name="mList">列表</param>
        public void LoadImagePage(List<ImageFramlayout> imageFramlayoutList)
        {
            if (index == -1) { return; }
            this.CurrnetSelectIndex = index;
            if (imageFramlayoutList==null||imageFramlayoutList.Count == 0)
            {
                return;
            }
            //int currnetheightValue = 0;
            //int currnetWidthValue = 0;
            //int heightMaxValue = ImageFramlayout.heightFrameLayout;
            //int widthMaxValue = ImageFramlayout.widthFrameLayout;
            ////获取相对一个纬度值
            //int heightDimensionValue = this.Height - Application.GetRealHeight(this.topMargin) - Application.GetRealHeight(this.bottomMargin) - Application.GetRealHeight(heightMaxValue / 2);
            //int widthDimensionValue = this.Width - Application.GetRealWidth(this.leftMargin) - Application.GetRealWidth(this.rightMargin) - Application.GetRealHeight(widthMaxValue / 2);
            for (int i = 0; i < imageFramlayoutList.Count; i++)
            {
                var imageFram = imageFramlayoutList[i];
                if (imageFram == null)
                {
                    continue;
                }
                imageFram.AddView(this);
                imageFram.Y =Application.GetRealHeight(this.topMargin) + Application.GetRealHeight(currnetheightValue1);
                imageFram.X = Application.GetRealWidth(currnetWidthValue1);
                currnetWidthValue1 += (widthMaxValue1 + 8);//8是隔间值
                if (widthDimensionValue1 < Application.GetRealWidth(currnetWidthValue1))
                {
                    currnetheightValue1 += (heightMaxValue1 + 20);//20是隔间值
                    currnetWidthValue1 = 0;
                }
                imageFram.SetClickListener((fl) =>
                {
                    if (imageFram.Tag != null && imageFram.Tag is MovieLibrary)
                    {
                        selectImageAction?.Invoke((MovieLibrary)imageFram.Tag);
                    }
                });
            }
        }
        /// <summary>
        /// 水平滑动布局
        /// </summary>
        /// <param name="mList">列表</param>
        /// <param name="defaultIndex">默认值索引范围[0,mList.count-1],值超出范围视为无效</param>
        public void LoadHorizontalPage(List<FilterCategoryEntity> mList, int defaultIndex = -1)
        {
            if (mList == null || mList.Count == 0)
            {
                return;
            }
            for (int i = 0; i < mList.Count; i++)
            {
                var filterCategory = mList[i];
                BaseFramLayout horizontalFL = new BaseFramLayout
                {
                    Y = Application.GetRealHeight(i * 75),
                    Height = Application.GetRealHeight(75),
                    Width = this.Width,
                };
                this.AddChidren(horizontalFL);
                Button btnTitleType = new Button
                {
                    X = Application.GetRealWidth(16),
                    Y = Application.GetRealHeight(16),
                    Height = Application.GetRealHeight(22),
                    Width = Application.GetRealWidth(200),
                    Text = filterCategory.name,
                    TextSize = TextSize.Text16,
                    TextColor = MusicColor.TextColor,
                    TextAlignment = TextAlignment.CenterLeft,
                    IsBold = true,
                    Tag = filterCategory,
                };
                horizontalFL.AddChidren(btnTitleType);
                HorizontalFramLayout horizontal = new HorizontalFramLayout(375 - 16, 28);
                horizontalFL.AddChidren(horizontal);
                horizontal.Y = btnTitleType.Bottom + Application.GetRealHeight(8);
                horizontal.X = Application.GetRealWidth(16);
                horizontal.SelectTypeEvent += (filters) =>
                {
                    KeypadEntity keypad = new KeypadEntity();
                    keypad.category = filters.category;
                    keypad.filterValue = filters.filterValue;
                    keypad.filterName = filters.filterName;
                    selectKeyAction?.Invoke(keypad);
                };
                horizontal.InitControl(filterCategory.filters, defaultIndex);
            }
        }
        /// <summary>
        /// 最后一行
        /// </summary>