wxr
2020-11-12 a715181089be0d31cd737a5367ffd02690b9d77f
HDL_ON/UI/UI2/UserPage.cs
@@ -1,9 +1,11 @@
using System;
using HDL_ON.Entity;
using Shared;
using HDL_ON.UI.CSS;
namespace HDL_ON.UI
{
    public class UserPage : FrameLayout
    public partial class UserPage : FrameLayout
    {
        #region 控件列表
@@ -18,7 +20,7 @@
        /// <summary>
        /// 导航栏区域
        /// </summary>
        FrameLayout NavigationView;
        FrameLayout navigationView;
        /// <summary>
        /// 导航栏点击区域
        /// </summary>
@@ -75,40 +77,98 @@
        /// <summary>
        /// 选中区域
        /// </summary>
        FrameLayout NavigationSelectionView;
        FrameLayout navigationSelectionView;
        /// <summary>
        /// 选中区域图标
        /// </summary>
        Button btnNavigationSelectionIcon;
        #endregion
        #endregion
        public UserPage()
        /// <summary>
        /// 当前动画效果
        /// 0:收藏
        /// 1:分类
        /// 2:智能
        /// 3:个人
        /// </summary>
        int CurAnimationEffect = 0;
        public void LoadPage()
        {
            bodyView = this;
            ContextView = new FrameLayout()
            try
            {
                Height = Application.GetRealHeight(618),
            };
            bodyView.AddChidren(ContextView);
                bodyView = this;
                bodyView.BackgroundColor = CSS_Color.MainBackgroundColor;
                ContextView = new FrameLayout()
                {
                    Height = Application.GetRealHeight(618 + 17),//导航栏底部界限
                    BackgroundColor = CSS_Color.BackgroundColor,
                };
                bodyView.AddChidren(ContextView);
            NavigationView = new FrameLayout()
                navigationView = new FrameLayout()
                {
                    Y = Application.GetRealHeight(607),
                    Height = Application.GetMinRealAverage(60),
                    //BackgroundColor = CSS_Color.BackgroundColor
                };
                bodyView.AddChidren(navigationView);
                if (MainPage.Increase)
                {
                    //ContextView.Height = Application.GetRealHeight(618 + 20);
                    navigationView.Y = Application.GetRealHeight(597 + 5);
                    navigationView.Height = Application.GetRealHeight(70 - 5);
                }
                InitBottomView();
                LoadEventList();
                var homePage = new HomePage();
                ContextView.AddChidren(homePage);
                homePage.LoadPage();
                //刷新功能状态
                DB_ResidenceData.residenceData.RefreshResidenceFunctionStatus();
            }
            catch (Exception ex)
            {
                Y = Application.GetRealHeight(607),
                Height = Application.GetRealHeight(60),
            };
            bodyView.AddChidren(NavigationView);
                MainPage.Log($"UserPage error {ex.Message}");
            }
        }
        /// <summary>
        /// 选中个人中心
        /// 初始化底部区域
        /// </summary>
        public void ChoosePersonalCenter()
        void InitBottomView()
        {
            navigationSelectionView = new FrameLayout()
            {
                X = Application.GetRealWidth(0 - 94 * 3),
                Y = Application.GetMinRealAverage(4),
                Width = Application.GetRealWidth(94 * 7),
                Height = Application.GetRealWidth(38),
                BackgroundImagePath = "Navigation/UserPageNavbg.png",
            };
            navigationView.AddChidren(navigationSelectionView);
            btnNavigationSelectionIcon = new Button()
            {
                Gravity = Gravity.CenterHorizontal,
                Y = Application.GetRealWidth(6),
                Width = Application.GetRealWidth(22),
                Height = Application.GetRealWidth(22),
                UnSelectedImagePath = "Navigation/HomePageIconOn.png",
            };
            navigationSelectionView.AddChidren(btnNavigationSelectionIcon);
            NavigationSubView = new FrameLayout()
            {
                Y = Application.GetRealHeight(11),
                Y = Application.GetMinRealAverage(11),
                Height = Application.GetRealHeight(49),
                BackgroundColor = CSS.CSS_Color.MainBackgroundColor,
                //BackgroundColor=0xFF00F0F0
            };
            NavigationView.AddChidren(NavigationSubView);
            navigationView.AddChidren(NavigationSubView);
            #region 收藏区域
            collectionView = new FrameLayout() {
@@ -120,7 +180,9 @@
                Y = Application.GetRealHeight(5),
                Width = Application.GetMinRealAverage(22),
                Height = Application.GetMinRealAverage(22),
                UnSelectedImagePath = "Navigation/CollectionIcon.png",
                UnSelectedImagePath = "Navigation/HomePageIcon.png",
                SelectedImagePath = "Public/transparent.png",
                IsSelected = true,
            };
            collectionView.AddChidren(btnCollectionIcon);
            btnCollectionText = new Button()
@@ -128,11 +190,12 @@
                Gravity = Gravity.CenterHorizontal,
                Y = btnCollectionIcon.Bottom,
                Height = Application.GetRealHeight(16),
                SelectedTextColor = CSS.CSS_Color.MainColor,
                TextColor =CSS.CSS_Color.FirstLevelTitleColor,
                TextSize = CSS.CSS_FontSize.PromptFontSize_SecondaryLevel,
                TextID = InternationalizationString.Collection,
                SelectedTextColor = CSS_Color.MainColor,
                TextColor =CSS_Color.FirstLevelTitleColor,
                TextSize = CSS_FontSize.PromptFontSize_SecondaryLevel,
                TextID = StringId.Collection,
                TextAlignment = TextAlignment.Center,
                IsSelected = true,
            };
            collectionView.AddChidren(btnCollectionText);
            #endregion
@@ -151,6 +214,7 @@
                Width = Application.GetMinRealAverage(22),
                Height = Application.GetMinRealAverage(22),
                UnSelectedImagePath = "Navigation/ClassificationIcon.png",
                SelectedImagePath = "Public/transparent.png",
            };
            classificationView.AddChidren(btnClassificationIcon);
            btnClassificationText = new Button()
@@ -158,16 +222,16 @@
                Gravity = Gravity.CenterHorizontal,
                Y = btnCollectionIcon.Bottom,
                Height = Application.GetRealHeight(16),
                SelectedTextColor = CSS.CSS_Color.MainColor,
                TextColor = CSS.CSS_Color.FirstLevelTitleColor,
                TextSize = CSS.CSS_FontSize.PromptFontSize_SecondaryLevel,
                TextID = InternationalizationString.Classification,
                SelectedTextColor = CSS_Color.MainColor,
                TextColor = CSS_Color.FirstLevelTitleColor,
                TextSize = CSS_FontSize.PromptFontSize_SecondaryLevel,
                TextID = StringId.Classification,
                TextAlignment = TextAlignment.Center,
            };
            classificationView.AddChidren(btnClassificationText);
            #endregion
            #region 分类区域
            #region 智能区域
            intellectualizationView = new FrameLayout()
            {
                Width = Application.GetRealWidth(94),
@@ -181,6 +245,7 @@
                Width = Application.GetMinRealAverage(22),
                Height = Application.GetMinRealAverage(22),
                UnSelectedImagePath = "Navigation/IntellectualizationIcon.png",
                SelectedImagePath = "Public/transparent.png",
            };
            intellectualizationView.AddChidren(btnIntellectualizationIcon);
            btnIntellectualizationText = new Button()
@@ -188,10 +253,10 @@
                Gravity = Gravity.CenterHorizontal,
                Y = btnCollectionIcon.Bottom,
                Height = Application.GetRealHeight(16),
                TextColor = CSS.CSS_Color.FirstLevelTitleColor,
                SelectedTextColor = CSS.CSS_Color.MainColor,
                TextSize = CSS.CSS_FontSize.PromptFontSize_SecondaryLevel,
                TextID = InternationalizationString.Classification,
                TextColor = CSS_Color.FirstLevelTitleColor,
                SelectedTextColor = CSS_Color.MainColor,
                TextSize = CSS_FontSize.PromptFontSize_SecondaryLevel,
                TextID = StringId.Intellectualization,
                TextAlignment = TextAlignment.Center,
            };
            intellectualizationView.AddChidren(btnIntellectualizationText);
@@ -212,7 +277,7 @@
                Width = Application.GetMinRealAverage(22),
                Height = Application.GetMinRealAverage(22),
                UnSelectedImagePath = "Navigation/PersonalCenterIcon.png",
                SelectedImagePath = "Navigation/PersonalCenterIconOn.png",
                SelectedImagePath = "Public/transparent.png",
            };
            personalCenterView.AddChidren(btnPersonalCenterIcon);
@@ -221,40 +286,371 @@
                Gravity = Gravity.CenterHorizontal,
                Y = btnCollectionIcon.Bottom,
                Height = Application.GetRealHeight(16),
                TextColor = CSS.CSS_Color.FirstLevelTitleColor,
                SelectedTextColor = CSS.CSS_Color.MainColor,
                TextSize = CSS.CSS_FontSize.PromptFontSize_SecondaryLevel,
                TextID = InternationalizationString.Classification,
                TextColor = CSS_Color.FirstLevelTitleColor,
                SelectedTextColor = CSS_Color.MainColor,
                TextSize = CSS_FontSize.PromptFontSize_SecondaryLevel,
                TextID = StringId.Personal,
                TextAlignment = TextAlignment.Center,
            };
            personalCenterView.AddChidren(btnPersonalCenterText);
            #endregion
            var homePage = new HomePage();
            ContextView.AddChidren(homePage);
            homePage.LoadPage();
        }
            btnPersonalCenterIcon.RemoveFromParent();
            btnPersonalCenterText.IsSelected = true;
            NavigationSelectionView = new FrameLayout()
        /// <summary>
        /// 切换到收藏界面
        /// </summary>
        void ChooseCollection()
        {
            if (CurAnimationEffect == 0)
            {
                X = personalCenterView.X,
                Width = Application.GetRealWidth(94),
                Height = Application.GetRealHeight(40),
                BackgroundImagePath = "Navigation/UserPageNavbg.png",
            };
            NavigationView.AddChidren(NavigationSelectionView);
            btnPersonalCenterIcon.IsSelected = true;
            btnPersonalCenterIcon.Y = Application.GetRealHeight(6);
                return;
            }
            btnClassificationIcon.IsSelected = false;
            btnIntellectualizationIcon.IsSelected = false;
            btnPersonalCenterIcon.IsSelected = false;
            btnCollectionText.IsSelected = false;
            btnClassificationText.IsSelected = false;
            btnIntellectualizationText.IsSelected = false;
            btnPersonalCenterText.IsSelected = false;
            #region 移动动画
            //移动距离
            var distance = navigationSelectionView.X - collectionView.X + Application.GetRealWidth(94*3);
            int total = 10;
            int sleepTime = 300;
            if (distance > 200)
            {
                sleepTime = 400;
                total = 30;
            }
            else if (distance > 100)
            {
                total = 20;
            }
            distance /= total;
            new System.Threading.Thread(() => {
                int index = 0;
                CurAnimationEffect = 0;
                while (index < total+1)
                {
                    if (CurAnimationEffect != 0)
                    {
                        break;
                    }
                    Application.RunOnMainThread(() =>
                    {
                        //移动
                        if (index < total)
                        {
                            navigationSelectionView.X -= distance;
                        }
                        else
                        {
                            navigationSelectionView.X = collectionView.X - Application.GetRealWidth(94 * 3);
                            btnCollectionText.IsSelected = true;
                            btnCollectionIcon.IsSelected = true;
                            btnClassificationIcon.IsSelected = false;
                            btnIntellectualizationIcon.IsSelected = false;
                            btnPersonalCenterIcon.IsSelected = false;
                            btnClassificationText.IsSelected = false;
                            btnIntellectualizationText.IsSelected = false;
                            btnPersonalCenterText.IsSelected = false;
                            btnNavigationSelectionIcon.UnSelectedImagePath = "Navigation/HomePageIconOn.png";
                        }
                        if (index == (total/2))
                        {
                            btnNavigationSelectionIcon.UnSelectedImagePath = "Navigation/HomePageIconOn.png";
                        }
                        //旋转
                        btnNavigationSelectionIcon.SetRotation(-36f * index);
                    });
                    System.Threading.Thread.Sleep(sleepTime / total);
                    index++;
                }
            NavigationSelectionView.AddChidren(btnPersonalCenterIcon);
                Application.RunOnMainThread(() =>
                {
                    btnNavigationSelectionIcon.SetRotation(0f);
                });
            }) { IsBackground = true }.Start();
            #endregion
            ContextView.RemoveAll();
            var homePage = new HomePage();
            ContextView.AddChidren(homePage);
            homePage.LoadPage();
        }
        /// <summary>
        /// 切换到分类界面
        /// </summary>
        void ChooseClassification()
        {
            if (CurAnimationEffect == 1)
            {
                return;
            }
            btnCollectionIcon.IsSelected = false;
            btnIntellectualizationIcon.IsSelected = false;
            btnPersonalCenterIcon.IsSelected = false;
            btnCollectionText.IsSelected = false;
            btnClassificationText.IsSelected = false;
            btnIntellectualizationText.IsSelected = false;
            btnPersonalCenterText.IsSelected = false;
            #region 移动动画
            var distance = navigationSelectionView.X - classificationView.X + Application.GetRealWidth(94 * 3);
            int total = 10;
            int sleepTime = 300;
            if (distance > 100 || distance < -100)
            {
                total = 20;
            }
            distance /= total;
            new System.Threading.Thread(() =>
            {
                if (CurAnimationEffect == 1)
                {
                    return;
                }
                CurAnimationEffect = 1;
                int index = 0;
                while (index < total+1)
                {
                    if (CurAnimationEffect != 1)
                    {
                        break;
                    }
                    Application.RunOnMainThread(() =>
                    {
                        //移动
                        if (index < total)
                        {
                            navigationSelectionView.X -= distance;
                        }
                        else
                        {
                            navigationSelectionView.X = classificationView.X - Application.GetRealWidth(94 * 3);
                            btnClassificationText.IsSelected = true;
                            btnClassificationIcon.IsSelected = true;
                            btnCollectionIcon.IsSelected = false;
                            btnIntellectualizationIcon.IsSelected = false;
                            btnPersonalCenterIcon.IsSelected = false;
                            btnCollectionText.IsSelected = false;
                            btnIntellectualizationText.IsSelected = false;
                            btnPersonalCenterText.IsSelected = false;
                            btnNavigationSelectionIcon.UnSelectedImagePath = "Navigation/ClassificationIconOn.png";
                        }
                        if (index == (total / 2 ))
                        {
                            btnNavigationSelectionIcon.UnSelectedImagePath = "Navigation/ClassificationIconOn.png";
                        }
                        //旋转
                        if (distance < 0)
                        {
                            btnNavigationSelectionIcon.SetRotation(36f * index);
                        }
                        else
                        {
                            btnNavigationSelectionIcon.SetRotation(-36f * index);
                        }
                    });
                    System.Threading.Thread.Sleep(sleepTime / total);
                    index++;
                }
                Application.RunOnMainThread(() =>
                {
                    btnNavigationSelectionIcon.SetRotation(0f);
                });
            })
            { IsBackground = true }.Start();
            #endregion
            ContextView.RemoveAll();
            var classificaitionView = new ClassificationPage();
            ContextView.AddChidren(classificaitionView);
            classificaitionView.LoadPage();
        }
        /// <summary>
        /// 切换到智能界面
        /// </summary>
        void ChooseIntellectualization()
        {
            if (CurAnimationEffect == 2)
            {
                return;
            }
            btnCollectionText.IsSelected = false;
            btnClassificationText.IsSelected = false;
            btnIntellectualizationText.IsSelected = false;
            btnPersonalCenterText.IsSelected = false;
            btnCollectionIcon.IsSelected = false;
            btnClassificationIcon.IsSelected = false;
            btnPersonalCenterIcon.IsSelected = false;
            #region 移动动画
            var distance = navigationSelectionView.X - intellectualizationView.X + Application.GetRealWidth(94 * 3);
            int total = 10;
            int sleepTime = 300;
            if (distance > 100 || distance < -100)
            {
                total = 20;
            }
            distance /= total;
            new System.Threading.Thread(() => {
                if (CurAnimationEffect == 2)
                {
                    return;
                }
                CurAnimationEffect = 2;
                int index = 0;
                while (index < total+1)
                {
                    if(CurAnimationEffect!=2)
                    {
                        break;
                    }
                    Application.RunOnMainThread(() =>
                    {
                        //移动
                        if (index < total)
                        {
                            navigationSelectionView.X -= distance;
                        }
                        else
                        {
                            navigationSelectionView.X = intellectualizationView.X - Application.GetRealWidth(94 * 3);
                            btnIntellectualizationText.IsSelected = true;
                            btnIntellectualizationIcon.IsSelected = true;
                            btnCollectionText.IsSelected = false;
                            btnClassificationText.IsSelected = false;
                            btnPersonalCenterText.IsSelected = false;
                            btnCollectionIcon.IsSelected = false;
                            btnClassificationIcon.IsSelected = false;
                            btnPersonalCenterIcon.IsSelected = false;
                            btnNavigationSelectionIcon.UnSelectedImagePath = "Navigation/IntellectualizationIconOn.png";
                        }
                        if (index == (total / 2 ))
                        {
                            btnNavigationSelectionIcon.UnSelectedImagePath = "Navigation/IntellectualizationIconOn.png";
                        }
                        //旋转
                        if (distance < 0)
                        {
                            btnNavigationSelectionIcon.SetRotation(36f * index);
                        }
                        else
                        {
                            btnNavigationSelectionIcon.SetRotation(-36f * index);
                        }
                    });
                    System.Threading.Thread.Sleep(sleepTime / total);
                    index++;
                }
            var personalCenterPage = new UI2.PersonalCenterPage();
                Application.RunOnMainThread(() =>
                {
                    btnNavigationSelectionIcon.SetRotation(0f);
                });
            })
            { IsBackground = true }.Start();
            #endregion
            ContextView.RemoveAll();
            var intelligenceView = new IntelligencePage();
            ContextView.AddChidren(intelligenceView);
            intelligenceView.LoadPage();
        }
        /// <summary>
        /// 切换到个人中心界面
        /// </summary>
        void ChoosePersonalCenter()
        {
#if DEBUG
            if(MainPage.NoLoginMode)
            {
                return;
            }
#endif
            if (CurAnimationEffect == 3)
            {
                return;
            }
            btnCollectionText.IsSelected = false;
            btnClassificationText.IsSelected = false;
            btnIntellectualizationText.IsSelected = false;
            btnPersonalCenterText.IsSelected = false;
            btnCollectionIcon.IsSelected = false;
            btnClassificationIcon.IsSelected = false;
            btnIntellectualizationIcon.IsSelected = false;
            #region 移动动画
            var distance = navigationSelectionView.X - personalCenterView.X + Application.GetRealWidth(94 * 3);
            int total = 10;
            int sleepTime = 300;
            if (distance < -200)
            {
                sleepTime = 400;
                total = 30;
            }
            else if (distance < -100)
            {
                total = 20;
            }
            distance /= total;
            new System.Threading.Thread(() => {
                CurAnimationEffect = 3;
                int index = 0;
                while (index < total+1)
                {
                    if (CurAnimationEffect != 3)
                    {
                        break;
                    }
                    Application.RunOnMainThread(() =>
                    {
                        //移动
                        if (index < total)
                        {
                            navigationSelectionView.X -= distance;
                        }
                        else
                        {
                            navigationSelectionView.X = personalCenterView.X - Application.GetRealWidth(94 * 3);
                            btnPersonalCenterText.IsSelected = true;
                            btnPersonalCenterIcon.IsSelected = true;
                            btnCollectionText.IsSelected = false;
                            btnClassificationText.IsSelected = false;
                            btnIntellectualizationText.IsSelected = false;
                            btnCollectionIcon.IsSelected = false;
                            btnClassificationIcon.IsSelected = false;
                            btnIntellectualizationIcon.IsSelected = false;
                            btnNavigationSelectionIcon.UnSelectedImagePath = "Navigation/PersonalCenterIconOn.png";
                        }
                        if (index == (total / 2 ))
                        {
                            btnNavigationSelectionIcon.UnSelectedImagePath = "Navigation/PersonalCenterIconOn.png";
                        }
                        //旋转
                        btnNavigationSelectionIcon.SetRotation(36f * index);
                    });
                    System.Threading.Thread.Sleep(sleepTime / total);
                    index++;
                }
                Application.RunOnMainThread(() =>
                {
                    btnNavigationSelectionIcon.SetRotation(0f);
                });
            })
            { IsBackground = true }.Start();
            #endregion
            ContextView.RemoveAll();
            var personalCenterPage = new UI.PersonalCenterPage();
            ContextView.AddChidren(personalCenterPage);
            personalCenterPage.LoadView();
        }
    }
}