东坡下载:内容最丰富最安全的下载站!

首页IT技术 → 如何在EditText框内嵌入Button

如何在EditText框内嵌入Button

相关文章发表评论 来源:本站整理时间:2013/1/11 14:48:13字体大小:A-A+

更多

作者:不详点击:1513次评论:3次标签: 在EditText框内嵌入Button

  • 类型:开关定时大小:393KB语言:中文 评分:.0
  • 标签:
立即下载

如何在EditText框内嵌入Button呢?有很多人希望能在一个EditText中嵌入一个Button,用作搜索、清除等作用,下面是一位网友分享的一个比较简单的方案。

以下实现的是将Button放在EditText的右部。首先声明了一个类ButtonEditText继承自EditText,然后定义了一个Button,以及控制这个Button的高度、宽度的padding。高度的padding是指Button和EditText上下边框的距离,而宽度的padding是指Button和EditText右边框的距离

然后根据父类定义构造函数。init()函数是定义来初始化Button的,这里初始化Button比较简单,只设置了一个Text和ClickListener,如果需要更加复杂的初始化工作,可能需要用到自定义的attribute,详见这篇文章http://sxote.blog.51cto.com/885634/1112857

为了实现Button的点击效果,必须要把Touch的事件传递给Button,所以必须要重载dispatchTouchEvent()函数,如下:

上面的对event.getY() 和event.getX()的判断就是为了定位Touch事件发生在Button上,如果发生在Button上,就给它传递Touch事件。否则就用EditText的dispatchTouchEvent()函数。如果你需要对Button做一些高级的效果,这里可能还需要判断Button是否需要ACTION_OUTSIDE/ACTION_CANCEL消息

下面就需要对Button的显示进行处理了。显示首先是measure()、layout(),然后是draw(),缺一不可。重载如下:

最后的效果如下图所示:

附完整源文件:

扩展知识

相关评论

阅读本文后您有什么感想? 已有 人给出评价!

  • 2791 喜欢喜欢
  • 2101 顶
  • 800 难过难过
  • 1219 囧
  • 4049 围观围观
  • 5602 无聊无聊
热门评论
最新评论
第 4 楼 本机地址CZ88.NET 网友 客人 发表于: 2017/5/26 14:44:30
能接收到点击事件,但是看不到按钮

支持( 0 ) 盖楼(回复)

第 3 楼 本机地址CZ88.NET 网友 客人 发表于: 2017/2/17 14:36:53
再弄个Button的点击事件呗

支持( 0 ) 盖楼(回复)

第 2 楼 北京开心网 网友 客人 发表于: 2015/1/29 19:54:37
啦啦啦啦啦啦啦啦啦啦啦啦我还是搞不出来

支持( 0 ) 盖楼(回复)

第 1 楼 四川铁通 网友 客人 发表于: 2014/10/16 16:40:39
啦啦啦啦啦啦啦啦啦啦啦啦啦

支持( 0 ) 盖楼(回复)

昵称:
表情: 高兴 可 汗 我不要 害羞 好 下下下 送花 屎 亲亲
字数: 0/500 (您的评论需要经过审核才能显示)

本类常用软件