Xamarin.Android给 EditText 添加焦点的扩展方法
/// <summary> /// 定义了一个扩展方法 SetFocus,作用是设置 EditText 控件的焦点,并可以选择全部选中或者仅选中最后一个字符 /// 给 EditText 添加焦点的扩展方法,可选择是否全部选中 /// </summary> /// <param name="ed"></param> /// <param name="allSelect"></param> public static void SetFocus(this EditText ed,bool allSelect=true) { // 创建一个模拟触摸事件的 MotionEvent,模拟按下动作 var touch = MotionEvent.Obtain(SystemClock.UptimeMillis(), SystemClock.UptimeMillis(), MotionEventActions.Down, ed.ScaleX, ed.ScaleY, 0); // 将模拟触摸事件 touch 分发到目标控件 ed,模拟按下动作 ed.DispatchTouchEvent(touch); // 创建另外一个 MotionEvent,模拟松开动作 touch = MotionEvent.Obtain(SystemClock.UptimeMillis(), SystemClock.UptimeMillis(), MotionEventActions.Up, ed.ScaleX, ed.ScaleY, 0); // 将模拟触摸事件 touch 分发到目标控件 ed,模拟松开动作 ed.DispatchTouchEvent(touch); // 设置触摸聚焦 ed.FocusableInTouchMode = true; // 设置输入框可聚集 ed.Focusable = true; // 请求焦点 ed.RequestFocus(); // 获取焦点 ed.FindFocus(); //模拟点击动作 ed.PerformClick(); // 如果需要全部选中 if (allSelect) { // 选中全部文本 ed.SelectAll(); } else { // 判断文本框中是否有文本 if (ed.Text?.Length > 0) { // 将光标定位到文本末尾 ed.SetSelection(ed.Text.Length); } } // 模拟点击动作 ed.CallOnClick(); // 再次模拟点击动作 ed.PerformClick(); }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现