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

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<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> <EditTextListener.CustomerEditText android:id="@+id/edit_search" android:layout_width="match_parent" android:layout_height="50dp" android:layout_margin="10dp" android:background="@drawable/bg_frame_search" android:hint="带删除按钮的EditText" android:maxLength="50" android:padding="5dp" android:singleLine="true" android:textColor="#000000" /></LinearLayout>自定义的背景样式:bg_frame_search.xml
<?xml version="1.0" encoding="utf-8" ?><shape xmlns:android="http://schemas.android.com/apk/res/android"> <solid android:color="@color/background_white"/> <corners android:radius="5dp"/> <stroke android:width="1px" android:color="@color/frame_search"/></shape>
颜色值我就不贴了,自己写几个颜色就OK了。
版权声明
本文仅代表作者观点,不代表百度立场。
本文系作者授权百度百家发表,未经许可,不得转载。



