android listview和button,ImageButton等有事件的控件的总结

?





1

2

3

4

public ImageButton(Context context, AttributeSet attrs, int
defStyle) {

    super(context, attrs, defStyle);

    setFocusable(true);

}

  在listview中(或者ExpandableListview),item的view会被进行特殊的处理,通过convertview可以减少解析xml文件,提高效率。但是如果你自己解析一次,然后用变量保存,那么只有最后一个view才能正常显示,说明了每一个item的view都是不同的实例,这样就注定了每一个view事实上是可以添加按钮之类的单独响应事件的。

  有这么几种方法避免Button或者ImageButton抢夺整个item的焦点

  

  1. Button设置focusable=false,ImageButton要通过代码设置ib.setFocusable(false),这是因为源码的bug

?





1

2

3

4

public ImageButton(Context context, AttributeSet attrs, int
defStyle) {

    super(context, attrs, defStyle);

    setFocusable(true);

}

  2.
在item的layout的根viewgroup中设置android:descendantFocusability="blocksDescendants",这个属性也会使其他的view能响应焦点

  但是在实际开发过程中,我发现如果是ExpandableLisview的BaseExpandableListAdapter中的isChildSelectable方法覆写之后得返回true,否则也不能响应ItemClick

?





1

2

3

4

@Override

public boolean isChildSelectable(int
groupPosition, int
childPosition) {

    return
true;

}

android listview和button,ImageButton等有事件的控件的总结,布布扣,bubuko.com

时间: 2024-10-02 21:16:08

android listview和button,ImageButton等有事件的控件的总结的相关文章

Android: ListView与Button的共存问题解决

ListView 和 其它能触发点击事件的widget无法一起正常工作的原因是加入其它widget后,ListView的itemclick事件将无法触发,被其它widget的click事件屏蔽. 首先,说明一下,ListView中每一行包括以下三项: 一个ImageView, 一个TextView,一个ImageButton,依次排开. 以下是layout的内容,分为两部分: res/layout/main.xml <?xml version="1.0" encoding=&qu

自个儿写Android的下拉刷新/上拉加载控件 (续)

本文算是对之前的一篇博文<自个儿写Android的下拉刷新/上拉加载控件>的续章,如果有兴趣了解更多的朋友可以先看一看之前的这篇博客. 事实上之所以会有之前的那篇博文的出现,是起因于前段时间自己在写一个练手的App时很快就遇到这种需求.其实我们可以发现类似这样下拉刷新.上拉加载的功能正在变得越来越普遍,可以说如今基本上绝大多数的应用里面都会使用到.当然,随着Android的发展,已经有不少现成的可以实现这种需求的"轮子"供我们使用了. 但转过头想一下想,既然本来就是自己练手

《深入理解Android 卷III》第六章 深入理解控件(ViewRoot)系统

<深入理解Android 卷III>即将公布,作者是张大伟.此书填补了深入理解Android Framework卷中的一个主要空白,即Android Framework中和UI相关的部分. 在一个特别讲究颜值的时代,本书分析了Android 4.2中WindowManagerService.ViewRoot.Input系统.StatusBar.Wallpaper等重要"颜值绘制/处理"模块 第6章 深入理解控件(ViewRoot)系统(节选) 本章主要内容: ·  介绍创建

android自定义View之(七)------自定义控件组合仿actionbar控件

我们前面写了6个自定义view的样例,这都是全新自已画的控件.在这个样例中,我们来用几个现有的控件来组合成一个新的控件. 效果图: 我们用二个Button和一个TextView组合来成为一个actionbar,下面先来一个效果图: 关键代码: (1)res/layout/custom_action_bar.xml----组合控件布局文件 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android&quo

event.srcElement获得引发事件的控件(表单)

<1> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title></title&

android开发游记:meterial design 5.0 开源控件整套合集 及使用demo

android 的5.0发布不光google官方给出了一些新控件,同时还给出了一套符合material design风格的设计标准,这套标准将未来将覆盖google所有产品包括pc端,网站,移动端.在android端上陆续出现了许多开源的控件库开始以google的以 material design为指导而设计的新风格控件库,对比了多个库之后这里推荐一套比较齐全且效果比较好的控件库,使用方法和传统控件高度一致,并向下兼容,附上使用方式和demo下载. 效果图: 这是由rey5137发布的mater

ASP.NET - 自定义控件处理页面事件(控件与页面数据交互)的方法

//用委托的方法实现 //控件代码 public delegate void DelegateFunction( string sPageTitle ); private DelegateFunction delegateChangePageTitle = null; public DelegateFunction ChangePT { get { return delegateChangePageTitle; }set { delegateChangePageTitle = value; }

Error-ASP.NET:由于未能找到 id 为“FileUpload1$gvFiles$ctl02$lnkBtnRemoveFile”的控件或在回发后将同一 ID 分配给另一个控件,导致发生错误。如果未分配 ID,请显式设置引发回发事件的控件的 ID 属性以避免此错误。

ylbtech-Error-ASP.NET:由于未能找到 id 为“FileUpload1$gvFiles$ctl02$lnkBtnRemoveFile”的控件或在回发后将同一 ID 分配给另一个控件,导致发生错误.如果未分配 ID,请显式设置引发回发事件的控件的 ID 属性以避免此错误. 1.返回顶部 1. “/”应用程序中的服务器错误. 由于未能找到 id 为“FileUpload1$gvFiles$ctl02$lnkBtnRemoveFile”的控件或在回发后将同一 ID 分配给另一个控件

xamarin.android listview绑定数据及点击事件

前言 listview是用来显示数据列表的一个控件,今天给大家带来如何使用cursor进行数据绑定以及点击事件. 导读 1.如何创建一个listview 2.如何使用cursor进行绑定数据 3.listview的点击事件 正文 1.如何创建一个listview 这里我们自定义一个listview的视图,首先打开Main.axml,拖一个listview放进去. 右击Layout新建一个视图,名为UserListItemLayout.axml,拖两个textview进去,如图 这样我们就完成了一