old mode 100755
new mode 100644
| | |
| | | using System;
|
| | | using System.Collections.Generic;
|
| | | using System.Text;
|
| | |
|
| | | namespace Shared.Phone.UserCenter
|
| | | {
|
| | | /// <summary>
|
| | | /// 信息编辑控件(不建议别人使用)
|
| | | /// </summary>
|
| | | public class InformationEditorControl
|
| | | {
|
| | | /// <summary>
|
| | | /// 初始化控件(返回的是信息容器控件)
|
| | | /// </summary>
|
| | | /// <param name="bodyFrameLayout">bodyFrameLayout</param>
|
| | | /// <param name="title">标题文本</param>
|
| | | /// <param name="Y">bodyFrameLayout里面的Y轴坐标</param>
|
| | | /// <param name="Height">蓝湖UI里面它的高度</param>
|
| | | /// <returns>信息容器控件</returns>
|
| | | public VerticalListControl InitControl(FrameLayout bodyFrameLayout, string title, int Y, int Height)
|
| | | {
|
| | | //弧度的圆的一半的高度(固定)
|
| | | int halfRoundHeigth = Application.GetRealHeight(116) / 2;
|
| | | //弧度的圆
|
| | | var btnRound = new NormalViewControl(bodyFrameLayout.Width, halfRoundHeigth * 2, false);
|
| | | btnRound.Y = Application.GetRealHeight(Y);
|
| | | btnRound.BackgroundColor = UserCenterColor.Current.White;
|
| | | btnRound.Radius = (uint)halfRoundHeigth;
|
| | | bodyFrameLayout.AddChidren(btnRound);
|
| | | //明细列表的桌布,白色背景(覆盖弧度的圆的半边)
|
| | | var detailBackFrame = new FrameLayout();
|
| | | detailBackFrame.Y = btnRound.Bottom - btnRound.Height / 2;
|
| | | detailBackFrame.Height = Application.GetRealHeight(Height);//高度就是要它超过
|
| | | detailBackFrame.BackgroundColor = UserCenterColor.Current.White;
|
| | | bodyFrameLayout.AddChidren(detailBackFrame);
|
| | |
|
| | | //信息编辑
|
| | | var btnTile = new NormalViewControl(800, 60, true);
|
| | | btnTile.X = ControlCommonResourse.XXLeft;
|
| | | btnTile.TextSize = 15;
|
| | | btnTile.TextColor = UserCenterColor.Current.TextColor2;
|
| | | btnTile.Text = title;
|
| | | detailBackFrame.AddChidren(btnTile);
|
| | |
|
| | | var listview = new VerticalListControl(12);
|
| | | listview.Y = btnTile.Bottom + Application.GetRealHeight(17);
|
| | | listview.Height = Application.GetRealHeight(Height) - halfRoundHeigth - btnTile.Bottom - Application.GetRealHeight(17);
|
| | | detailBackFrame.AddChidren(listview);
|
| | |
|
| | | return listview;
|
| | | }
|
| | |
|
| | | /// <summary>
|
| | | /// 完成初始化(当行数多的时候,这个函数很有用。行数不超过容器时,调不调用这个函数都没事)
|
| | | /// </summary>
|
| | | /// <param name="bodyFrameLayout">bodyFrameLayout</param>
|
| | | /// <param name="listview">容器控件</param>
|
| | | public void FinishInitControl(FrameLayout bodyFrameLayout, VerticalListControl listview)
|
| | | {
|
| | | var btnFinish = new BottomClickButton();
|
| | | //借用Y轴坐标(让这个区域不能点击菜单)
|
| | | var frameBack = new FrameLayout();
|
| | | frameBack.Y = btnFinish.Yaxis;
|
| | | frameBack.Height = bodyFrameLayout.Height - btnFinish.Yaxis;
|
| | | bodyFrameLayout.AddChidren(frameBack);
|
| | |
|
| | | var realHeight = listview.GetChildren(0).Height * listview.ChildrenCount;
|
| | | if (bodyFrameLayout.Height - btnFinish.Yaxis + realHeight > listview.Height)
|
| | | {
|
| | | //促使被挡住的菜单能够向上滑动
|
| | | var frameTemp = new FrameLayout();
|
| | | frameTemp.Height = frameBack.Height + Application.GetRealHeight(115);
|
| | | listview.AddChidren(frameTemp);
|
| | | }
|
| | | btnFinish = null;
|
| | | }
|
| | | }
|
| | | }
|
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.Text; |
| | | |
| | | namespace Shared.Phone.UserCenter |
| | | { |
| | | /// <summary> |
| | | /// 信息编辑控件(不建议别人使用) |
| | | /// </summary> |
| | | public class InformationEditorControl |
| | | { |
| | | #region ■ 变量声明___________________________ |
| | | |
| | | /// <summary> |
| | | /// 明细列表的桌布,白色背景 |
| | | /// </summary> |
| | | private FrameLayout detailBackFrame = null; |
| | | /// <summary> |
| | | /// 列表控件 |
| | | /// </summary> |
| | | private FrameListControl listview = null; |
| | | /// <summary> |
| | | /// 最小高度 |
| | | /// </summary> |
| | | private int minHeight = -1; |
| | | |
| | | #endregion |
| | | |
| | | #region ■ 初始化_____________________________ |
| | | |
| | | /// <summary> |
| | | /// 初始化控件(返回的是信息容器控件) |
| | | /// </summary> |
| | | /// <param name="bodyFrameLayout">父控件</param> |
| | | /// <param name="title">标题文本</param> |
| | | /// <param name="Height">蓝湖UI里面它的高度</param> |
| | | /// <param name="real">是否计算Height的真实值</param> |
| | | /// <returns>信息容器控件</returns> |
| | | public FrameListControl InitControl(FrameLayout bodyFrameLayout, string title, int Height, bool real = true) |
| | | { |
| | | if (real == true) { Height = Application.GetRealHeight(Height); } |
| | | //明细列表的桌布,白色背景 |
| | | this.detailBackFrame = new FrameLayout(); |
| | | detailBackFrame.Height = Height; |
| | | detailBackFrame.BackgroundColor = UserCenterColor.Current.White; |
| | | detailBackFrame.SetCornerWithSameRadius(Application.GetRealHeight(58), HDLUtils.RectCornerTopLeft | HDLUtils.RectCornerTopRight); |
| | | detailBackFrame.Gravity = Gravity.BottomCenter; |
| | | bodyFrameLayout.AddChidren(detailBackFrame); |
| | | this.minHeight = detailBackFrame.Height; |
| | | |
| | | //信息编辑 |
| | | var btnTile = new NormalViewControl(800, 60, true); |
| | | btnTile.X = ControlCommonResourse.XXLeft; |
| | | btnTile.Y = Application.GetRealHeight(81); |
| | | btnTile.TextSize = 15; |
| | | btnTile.TextColor = UserCenterColor.Current.TextColor2; |
| | | btnTile.Text = title; |
| | | detailBackFrame.AddChidren(btnTile); |
| | | |
| | | //列表控件 |
| | | this.listview = new FrameListControl(12); |
| | | listview.Y = btnTile.Bottom + Application.GetRealHeight(17); |
| | | listview.Height = Height - btnTile.Bottom - Application.GetRealHeight(17); |
| | | detailBackFrame.AddChidren(listview); |
| | | |
| | | return listview; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 完成初始化 |
| | | /// </summary> |
| | | /// <param name="HadBottomButton">这个控件所在的界面,底部有没有保存按钮</param> |
| | | /// <param name="mandatoryAdjustment">强制调整高度</param> |
| | | public void FinishInitControl(bool HadBottomButton = true, bool mandatoryAdjustment = false) |
| | | { |
| | | if (HadBottomButton == true) |
| | | { |
| | | var btnFinish = new BottomClickButton(); |
| | | //让它别改变坐标 |
| | | int tempSpace = listview.rowSpace; |
| | | listview.rowSpace = 0; |
| | | //促使被挡住的菜单能够向上滑动 |
| | | var frameTemp = new FrameLayout(); |
| | | frameTemp.Height = ControlCommonResourse.BodyFrameHeight - btnFinish.Yaxis + Application.GetRealHeight(23); |
| | | listview.AddChidren(frameTemp); |
| | | |
| | | listview.rowSpace = tempSpace; |
| | | } |
| | | |
| | | //调整容器高度大小 |
| | | int value = this.GetLocationMostLastViewBottom(); |
| | | if (mandatoryAdjustment == false) |
| | | { |
| | | if (value + Application.GetRealHeight(23) < listview.Height) |
| | | { |
| | | //不需要调整 |
| | | return; |
| | | } |
| | | } |
| | | //调整大小 |
| | | listview.Height = value + Application.GetRealHeight(23); |
| | | |
| | | int backHeigth = listview.Bottom; |
| | | if (minHeight > backHeigth) |
| | | { |
| | | //它有个最小高度 |
| | | backHeigth = minHeight; |
| | | } |
| | | this.detailBackFrame.Height = backHeigth; |
| | | |
| | | //获取listview所在的全局容器控件 |
| | | var contrFather = GetVerticalFrameControl(listview); |
| | | //调整桌布大小 |
| | | contrFather?.AdjustTableHeight(); |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | #region ■ 一般方法___________________________ |
| | | |
| | | /// <summary> |
| | | /// 获取listview所在的全局容器控件 |
| | | /// </summary> |
| | | /// <param name="listview"></param> |
| | | /// <returns></returns> |
| | | private VerticalFrameControl GetVerticalFrameControl(FrameListControl listview) |
| | | { |
| | | var myContr = listview.Parent; |
| | | while (myContr != null) |
| | | { |
| | | if (myContr is VerticalFrameControl) |
| | | { |
| | | return (VerticalFrameControl)myContr; |
| | | } |
| | | myContr = myContr.Parent; |
| | | } |
| | | return null; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 获取坐标底部最下面的那个控件的底部坐标 |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | private int GetLocationMostLastViewBottom() |
| | | { |
| | | int bottomHeight = -1; |
| | | |
| | | for (int i = 0; i < this.listview.ChildrenCount; i++) |
| | | { |
| | | var child = this.listview.GetChildren(i); |
| | | if (child.Bottom > bottomHeight) |
| | | { |
| | | bottomHeight = child.Bottom; |
| | | } |
| | | } |
| | | return bottomHeight; |
| | | } |
| | | |
| | | #endregion |
| | | } |
| | | } |