• 区分listview的item和Button的点击事件


    这两天修改领导通的ListView widget,在ListView中加入Button这类的有 “点击” 事件的widget,发现原来listview的itemclick居然失效了,
    后来在网上查资料终于得以解决。
     
    ListView 和 其它能触发点击事件的widget无法一起正常工作的原因是加入其它widget后,ListView的itemclick事件将无法触发,被其它widget的click事件屏蔽。
     
    解决办法:
    在item中,包含button的item的Layout中加入属性 android:descendantFocusability= "blocksDescendants"
    在buttion的属性加入android:focusable="false"
     
    问题解决,两个click事件不再冲突了!
    ====================
     
    ListView的setOnItemClickListener事件和ListView中Item中包含的子控件(比如button)的click事件共存的解决办法:
    在ListView的item的xml配置文件的根节点添加属性
    android:descendantFocusability="blocksDescendants"
    并且,在要添加事件的子控件(如button)的属性里添加android:focusable="false"
    另外,注意:有时现成的几个adapter满足不了要求,此时就需要继承自BaseAdapter。

    下面我是程序中的部分代码,该布局文件时listview中的item的布局,

    listview_listitem_layout.xml   代码如下:

    <RelativeLayout
      xmlns:android="http://schemas.android.com/apk/res/android"
      android:layout_width="fill_parent"
      android:layout_height="fill_parent"
      android:orientation="horizontal"
      android:descendantFocusability="blocksDescendants"
      style="@style/ListItem">  
        
        <TextView 
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
    android:visibility="gone" />
    <ImageView 
     android:layout_width="45dip"
     android:layout_height="45dip"
       android:layout_gravity="center"
       android:layout_alignParentLeft="true"
     android:background="@drawable/imageview_background" 
     android:scaleType="fitXY" />   
     <Button  
      android:layout_width="@dimen/btn_attention_width"
      android:layout_height="@dimen/btn_attention_height"
      android:layout_alignParentRight="true"
      android:background="@drawable/button_selector_gradient"
      android:text="关注"
      android:focusable="false"/>
    </RelativeLayout>
  • 相关阅读:
    A20 烧录和启动 log
    图像处理---图像分割技术---基于图像灰度分布的阈值方法一
    H.265---内容总览
    H.265---仿射运动模型和双线性运动模型
    H.265---帧内预测与帧间预测
    linux内核---进程通信---消息队列
    linux内核---嵌入式linux内核的五个子系统
    高并发服务器---nginx---实现负载均衡的几种方式
    高并发服务器---nginx---正向代理和反向代理
    【CV系列】基于形态学梯度的边缘检测
  • 原文地址:https://www.cnblogs.com/awkflf11/p/4612612.html
Copyright © 2020-2023  润新知