using System;
|
using System.Collections.Generic;
|
using System.Text;
|
|
namespace Shared.Phone.UserCenter
|
{
|
/// <summary>
|
/// <para>做成一个弹窗型,左下角是【取消按钮】,右下角是【确认按钮】的弹窗控件</para>
|
/// <para>New的时候,就已经加入到了界面</para>
|
/// </summary>
|
public class DialogInputControl : FrameLayout
|
{
|
#region ■ 变量声明___________________________
|
|
/// <summary>
|
/// 确认按钮事件
|
/// </summary>
|
public Action<string> ComfirmClickEvent;
|
/// <summary>
|
/// 输入框的文本信息
|
/// </summary>
|
public string Text
|
{
|
get { return txtInput.Text.Trim(); }
|
set { this.txtInput.Text = value; }
|
}
|
|
/// <summary>
|
/// 输入框控件
|
/// </summary>
|
private TextInputControl txtInput = null;
|
/// <summary>
|
/// 标题控件
|
/// </summary>
|
private NormalViewControl btnTitle = null;
|
/// <summary>
|
/// 取消按钮
|
/// </summary>
|
private NormalViewControl btnCancel = null;
|
/// <summary>
|
/// 确认按钮
|
/// </summary>
|
private NormalViewControl btnConfirm = null;
|
|
#endregion
|
|
#region ■ 初始化_____________________________
|
|
/// <summary>
|
/// <para>做成一个弹窗型,左下角是【取消按钮】,右下角是【确认按钮】的弹窗控件</para>
|
/// <para>New的时候,就已经加入到了界面</para>
|
/// </summary>
|
public DialogInputControl()
|
{
|
//添加界面
|
var nowForm = UserView.HomePage.Instance.GetChildren(UserView.HomePage.Instance.ChildrenCount - 1);
|
if (nowForm == null || (nowForm is ViewGroup) == false)
|
{
|
return;
|
}
|
this.BackgroundColor = UserCenterColor.Current.DialogBackColor;
|
((ViewGroup)nowForm).AddChidren(this);
|
|
//白色背景框
|
var frameBack = new FrameLayout();
|
frameBack.Height = Application.GetRealHeight(507);
|
frameBack.Width = Application.GetRealWidth(792);
|
frameBack.BackgroundColor = UserCenterColor.Current.White;
|
frameBack.Y = Application.GetRealHeight(691);
|
frameBack.Gravity = Gravity.CenterHorizontal;
|
frameBack.Radius = 8;
|
this.AddChidren(frameBack);
|
//标题信息
|
this.btnTitle = new NormalViewControl(frameBack.Width, Application.GetRealHeight(65), false);
|
btnTitle.Y = Application.GetRealHeight(68);
|
btnTitle.TextColor = UserCenterColor.Current.TextColor1;
|
btnTitle.TextSize = 16;
|
btnTitle.TextAlignment = TextAlignment.Center;
|
frameBack.AddChidren(btnTitle);
|
|
//初始化边框
|
var frameText = new FrameLayout();
|
frameText.Width = Application.GetRealWidth(677);
|
frameText.Height = Application.GetRealHeight(100);
|
frameText.Y = Application.GetRealHeight(198);
|
frameText.Gravity = Gravity.CenterHorizontal;
|
frameText.BorderColor = 0xff676767;
|
frameText.BorderWidth = 1;
|
frameText.Radius = 8;
|
frameBack.AddChidren(frameText);
|
//输入框
|
this.txtInput = new TextInputControl(frameText.Width - Application.GetRealWidth(20), frameText.Height, false);
|
txtInput.TextAlignment = TextAlignment.Center;
|
txtInput.Gravity = Gravity.CenterHorizontal;
|
frameText.AddChidren(txtInput);
|
|
//取消
|
var frameCancel = new FrameLayoutControl();
|
frameCancel.Height = Application.GetRealHeight(127);
|
frameCancel.Width = Application.GetRealWidth(396);
|
frameCancel.Gravity = Gravity.BottomLeft;
|
frameCancel.Radius = 8;
|
frameCancel.BackgroundColor = 0xfff5f6fa;
|
frameBack.AddChidren(frameCancel);
|
//把上圆角覆盖为方角
|
var btnTopTemp1 = new NormalViewControl(frameCancel.Width, Application.GetRealHeight(40), false);
|
btnTopTemp1.BackgroundColor = 0xfff5f6fa;
|
frameCancel.AddChidren(btnTopTemp1, ChidrenBindMode.BindEventOnly);
|
//把右下圆角覆盖为方角
|
var btnBomTemp1 = new NormalViewControl(frameCancel.Width / 2, Application.GetRealHeight(40), false);
|
btnBomTemp1.BackgroundColor = 0xfff5f6fa;
|
btnBomTemp1.Gravity = Gravity.BottomRight;
|
frameCancel.AddChidren(btnBomTemp1, ChidrenBindMode.BindEventOnly);
|
//取消按钮
|
this.btnCancel = new NormalViewControl(frameCancel.Width - Application.GetRealWidth(10), Application.GetRealHeight(60), false);
|
btnCancel.Gravity = Gravity.Center;
|
btnCancel.TextColor = UserCenterColor.Current.TextGrayColor1;
|
btnCancel.TextID = R.MyInternationalizationString.uCancel;
|
btnCancel.TextAlignment = TextAlignment.Center;
|
btnCancel.BackgroundColor = 0xfff5f6fa;
|
frameCancel.AddChidren(btnCancel, ChidrenBindMode.BindEventOnly);
|
frameCancel.ButtonClickEvent += (sender, e) =>
|
{
|
//移除界面
|
this.CloseDialog();
|
};
|
//重写控件点击状态
|
frameCancel.SelectStatuEvent += (statu) =>
|
{
|
if (statu == true)
|
{
|
frameCancel.BackgroundColor = UserCenterColor.Current.ButtonClickStatuColor;
|
btnTopTemp1.BackgroundColor = UserCenterColor.Current.ButtonClickStatuColor;
|
btnBomTemp1.BackgroundColor = UserCenterColor.Current.ButtonClickStatuColor;
|
btnCancel.BackgroundColor = UserCenterColor.Current.ButtonClickStatuColor;
|
}
|
else
|
{
|
frameCancel.BackgroundColor = 0xfff5f6fa;
|
btnTopTemp1.BackgroundColor = 0xfff5f6fa;
|
btnBomTemp1.BackgroundColor = 0xfff5f6fa;
|
btnCancel.BackgroundColor = 0xfff5f6fa;
|
}
|
};
|
|
//确认
|
var frameConfirm = new FrameLayoutControl();
|
frameConfirm.Height = Application.GetRealHeight(127);
|
frameConfirm.Width = Application.GetRealWidth(396);
|
frameConfirm.Gravity = Gravity.BottomRight;
|
frameConfirm.Radius = 8;
|
frameConfirm.BackgroundColor = UserCenterColor.Current.ClickButtonDefultColor;
|
frameBack.AddChidren(frameConfirm);
|
//把上圆角覆盖为方角
|
var btnTopTemp2 = new NormalViewControl(frameConfirm.Width, Application.GetRealHeight(40), false);
|
btnTopTemp2.BackgroundColor = UserCenterColor.Current.ClickButtonDefultColor;
|
frameConfirm.AddChidren(btnTopTemp2, ChidrenBindMode.BindEventOnly);
|
//把左下圆角覆盖为方角
|
var btnBomTemp2 = new NormalViewControl(frameConfirm.Width / 2, Application.GetRealHeight(40), false);
|
btnBomTemp2.BackgroundColor = UserCenterColor.Current.ClickButtonDefultColor;
|
btnBomTemp2.Gravity = Gravity.BottomLeft;
|
frameConfirm.AddChidren(btnBomTemp2, ChidrenBindMode.BindEventOnly);
|
//确认按钮
|
this.btnConfirm = new NormalViewControl(frameConfirm.Width - Application.GetRealWidth(10), Application.GetRealHeight(60), false);
|
btnConfirm.Gravity = Gravity.Center;
|
btnConfirm.TextColor = UserCenterColor.Current.White;
|
btnConfirm.TextID = R.MyInternationalizationString.OkMsg;
|
btnConfirm.TextAlignment = TextAlignment.Center;
|
frameConfirm.AddChidren(btnConfirm, ChidrenBindMode.BindEventOnly);
|
frameConfirm.ButtonClickEvent += (sender, e) =>
|
{
|
if (this.Text == string.Empty && string.IsNullOrEmpty(this.txtInput.PlaceholderText) == false)
|
{
|
var alert = new ShowMsgControl(ShowMsgType.Tip, this.txtInput.PlaceholderText);
|
alert.Show();
|
return;
|
}
|
//回调函数
|
this.ComfirmClickEvent?.Invoke(this.Text);
|
};
|
//重写控件点击状态
|
frameConfirm.SelectStatuEvent += (statu) =>
|
{
|
if (statu == true)
|
{
|
frameConfirm.BackgroundColor = UserCenterColor.Current.ButtonClickStatuColor;
|
btnTopTemp2.BackgroundColor = UserCenterColor.Current.ButtonClickStatuColor;
|
btnBomTemp2.BackgroundColor = UserCenterColor.Current.ButtonClickStatuColor;
|
btnConfirm.BackgroundColor = UserCenterColor.Current.ButtonClickStatuColor;
|
}
|
else
|
{
|
frameConfirm.BackgroundColor = UserCenterColor.Current.ClickButtonDefultColor;
|
btnTopTemp2.BackgroundColor = UserCenterColor.Current.ClickButtonDefultColor;
|
btnBomTemp2.BackgroundColor = UserCenterColor.Current.ClickButtonDefultColor;
|
btnConfirm.BackgroundColor = UserCenterColor.Current.ClickButtonDefultColor;
|
}
|
};
|
}
|
|
#endregion
|
|
#region ■ 一般方法___________________________
|
|
/// <summary>
|
/// 画面关闭
|
/// </summary>
|
public void CloseDialog()
|
{
|
this.ComfirmClickEvent = null;
|
this.RemoveFromParent();
|
}
|
|
#endregion
|
|
#region ■ 设置信息___________________________
|
|
/// <summary>
|
/// 设置标题信息
|
/// </summary>
|
/// <param name="txtValue"></param>
|
public void SetTitleText(string txtValue)
|
{
|
this.btnTitle.Text = txtValue;
|
}
|
/// <summary>
|
/// 设置取消按钮的文本信息
|
/// </summary>
|
/// <param name="txtValue"></param>
|
public void SetCancelButtonText(string txtValue)
|
{
|
this.btnCancel.Text = txtValue;
|
}
|
|
/// <summary>
|
/// 设置确定按钮的文本信息
|
/// </summary>
|
/// <param name="txtValue"></param>
|
public void SetOkButtonText(string txtValue)
|
{
|
this.btnConfirm.Text = txtValue;
|
}
|
|
/// <summary>
|
/// 设置输入框灰色字体说明
|
/// </summary>
|
/// <param name="txtValue"></param>
|
public void SetTipText(string txtValue)
|
{
|
if (this.txtInput != null)
|
{
|
this.txtInput.PlaceholderText = txtValue;
|
}
|
}
|
|
#endregion
|
}
|
}
|