狗尾草

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

(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   狗尾草-大数据收割基  阅读(12163)  评论(0编辑  收藏  举报

编辑推荐:
· 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文件中使用,无需其他代码)
点击右上角即可分享
微信分享提示