(android控件)ListView的Item中设置按钮实现
前言
在项目的开发过程中,需要Listview的Item中包含按钮的效果。在实际开发过,Item中放置按钮后,ListView 单行选择背景颜色变化的效果没有了。
问题原因
ListView 和 其它能触发点击事件的widget无法一起正常工作的原因是加入其它widget后,ListView的itemclick事件将无法触发,被其它widget的click事件屏蔽。
目前网络上普遍的解决方式
设置1 在Item的xml模板中设置 根布局 属性
android:descendantFocusability= "blocksDescendants"
如下:
< RelativeLayout>
android:descendantFocusability= "blocksDescendants"
设置2 在按钮控件<ImageButton>中设置属性
android:focusable = "false"
补充:这种设置后,点击按钮,整条Item都响应点击效果,显示的效果非我们需要的
我们的需要的效果
1 ListView的Item本身可以选择
2 Item中的按钮可以随意点击,不会干扰Item
实现的过程
在ListView中用图片控件,或者文本控件,来代替图片按钮和普通按钮,并在Adapter中设置点击事件就可以
如例:
//根据数据项,设置点击文本框的文字,并设置点击事件 TextView txt_Remember=(TextView)convertView.findViewById(R.id.txt_Remember); txt_Remember.setOnClickListener(new TextView.OnClickListener() { public void onClick(View v){ LibListViewAdapter.this.remove(LibListViewAdapter.this.getItem(1)); } });
posted on 2012-07-11 08:22 狗尾草-大数据收割基 阅读(12163) 评论(0) 编辑 收藏 举报
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
2011-07-11 (android实战)应用在线版本更新
2011-07-11 自定义SeekBarPreference控件(老外出品,直接在preferences文件中使用,无需其他代码)