博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Xamarin Android自定义文本框
阅读量:6148 次
发布时间:2019-06-21

本文共 2105 字,大约阅读时间需要 7 分钟。

xamarin android 自定义文本框简单的用法

关键点在于,监听EditText的内容变化,不同于java中文本内容变化去调用EditText.addTextChangedListener(mTextWatcher);为EditText设置内容变化监听!
简单来说就是添加一个AfterTextChanged 事件就OK了,这是最简单的一种做法,当然你要想java那样去监听也可以的。
来看一下实现的效果图:
自定义的EditText::CustomerEditText.cs
using System;using System.Collections.Generic;using System.Linq;using System.Text;using Android.App;using Android.Content;using Android.OS;using Android.Runtime;using Android.Views;using Android.Widget;using Android.Graphics.Drawables;using Android.Util;using Java.Lang;using Android.Text;using Android.Graphics;namespace EditTextListener{    public class CustomerEditText:EditText    {        private Drawable imgClear;        private Context Context;        public CustomerEditText(Context context, IAttributeSet attrs) : base(context, attrs)        {            this.Context = context;            init();        }        private  void init()        {            imgClear = Context.Resources.GetDrawable(Resource.Drawable.del);            AfterTextChanged += (s, e) =>            {                setDrawable();            };        }        //回执删除图片        private void setDrawable()        {            if (Length() < 1)                SetCompoundDrawablesWithIntrinsicBounds(null, null, null, null);            else                SetCompoundDrawablesWithIntrinsicBounds(null,null,imgClear,null);        }        //当触摸范围在右侧时,触发删除方法,隐藏叉叉        public override bool OnTouchEvent(MotionEvent e)        {            if (imgClear != null && e.Action == MotionEventActions.Up)            {                int eventX = (int)e.RawX;                int eventY = (int)e.RawY;                Rect rect = new Rect();                GetGlobalVisibleRect(rect);                rect.Left = rect.Right - 100;                if (rect.Contains(eventX, eventY))                {                    Text=string.Empty;                }            }            return base.OnTouchEvent(e);        }    }}
布局文件Main.axml
自定义的背景样式:bg_frame_search.xml
颜色值我就不贴了,自己写几个颜色就OK了。
代码非常简单,当然这是最简单的实现方法,还有很多功能小功能都没实现。所以后面继续努力吧。

转载地址:http://fbqya.baihongyu.com/

你可能感兴趣的文章
vsftpd 相关总结
查看>>
售前工程师的成长---一个老员工的经验之谈
查看>>
Get到的优秀博客网址
查看>>
【Git入门之四】操作项目
查看>>
老男孩教育每日一题-第107天-简述你对***的理解,常见的有哪几种?
查看>>
Python学习--time
查看>>
在OSCHINA上的第一篇博文,以后好好学习吧
查看>>
软件概要设计做什么,怎么做
查看>>
dwr
查看>>
java的特殊符号
查看>>
word2010中去掉红色波浪线的方法
查看>>
fabric上下文管理器(context mangers)
查看>>
JQuery-EasyUI Datagrid数据行鼠标悬停/离开事件(onMouseOver/onMouseOut)
查看>>
并发和并行的区别
查看>>
php小知识
查看>>
Windows下安装、运行Lua
查看>>
Nginx 反向代理、负载均衡、页面缓存、URL重写及读写分离详解(二)
查看>>
初识中间件之消息队列
查看>>
MyBatis学习总结(三)——优化MyBatis配置文件中的配置
查看>>
Spring常用注解
查看>>