android中listview中包含ratingbar响应不了点击事件

在ListView中用RatingBar(自定义的图标),ListView就不能响应自己的单击事件OnItemClickListener。这怎么办呢?

只需要将布局文件中的Ratingbar的Android:isIndicator设置为false就可以了,这个代表该ratingbar只是作为指示器,不可操作。

有一些情况我们需要通过自定义ListView来实现一些效果,那么在这个时候,我们通常会碰到自定义ListView无法选中整个ListViewItem的情况,也就是无法响应ListView的onItemClickListener中的onItemClick()方法

通常默认能获得focus的控件有Button,Checkable继承来的所有控件,这就意味着如果你的自定义ListViewItem中有Button或者Checkable的子类控件的话,那么默认focus是交给了子控件,而ListView的Item能被选中的基础是它能获取Focus,也就是说我们可以通过将ListView中Item中包含的所有控件的focusable属性设置为false,这样的话ListView的Item自动获得了Focus的权限,也就可以被选中了,也就会响应onItemClickListener中的onItemClick()方法,然而将ListView的Item Layout的子控件focusable属性设置为false有点繁琐,我们可以通过对Item Layout的根控件设置其android:descendantFocusability=”blocksDescendants”即可,这样Item Layout就屏蔽了所有子控件获取Focus的权限,不需要针对Item Layout中的每一个控件重新设置focusable属性了,如此就可以顺利的响应onItemClickListener中的onItenClick()方法了。例如我的ListViw的每个item项是RelativeLayout,那么我就可以设置RelativeLayout的android:descendantFocusability=”blocksDescendants”即可。注意:这个属性不能设置给ListView,设置了也不起作用。

时间: 2024-10-29 10:52:28

android中listview中包含ratingbar响应不了点击事件的相关文章

android 修改listview中adapter数据时抛出异常java.lang.IllegalStateException: The content of the adapter has changed but ListView did not receive a notification问题

近日在做项目时遇到非必现crush,具体异常信息为: // Short Msg: java.lang.IllegalStateException // Long Msg: java.lang.IllegalStateException: The content of the adapter has changed but ListView did not receive a notification. Make sure the content of your adapter is not mo

Android 在ListView中嵌套ListView的事件处理

前天在工作中遇到在ListView中的Item需要用ListView来展现处理后的内容,然后就遇到了一个很头疼的问题,作为Item的ListView没法进行滑动,而且显示也不正常,只是显示几个子Item.不能将子Item全部显示,原因是在控件绘制出来之前要对ListView的大小进行计算,要解决将子ListView全部显示出来的问题,就是重新计算一下其大小告知系统即可.后面这个问题比较好解决,网上已经给出解决方案: 前辈们给出了一个方法,重新计算子ListView的大小,然后在设置本ListVi

在android 自定义listView中绘制矩形

我想在android 在listview中绘制自定义的形状,我在网上找了代码但是没有运行通过,我现在有一个可以绘制矩形的 DrawView.java类,我想在我的自定义listView中展示这个对象. 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 32 33 34 35 36 37 38 39 40 41 DrawView.java package com.example.h

解决ListView中Item的子控件与Item点击事件冲突

经常会碰到在ListView中点击其中一个Item,会一并触发其子控件的点击事件,例如Item中的Button.ImageButton等,导致了点击Item中Button以外区域也会触发Button点击事件.在网上找了相关方法,这里记录下,亲测可行.. 1.在Item的xml文件根元素中添加属性:android:descendantFocusability="blocksDescendants" 2.在冲突的子控件中添加属性:android:focusable="false&

Delphi中ListView中实现自定义删除功能的方法

Delphi中ListView中实现自定义删除功能的方法 第一种:有时删除文件会出现文件删不掉现象 if lvMain.InnerListView.ItemIndex <> -1 then begin // DoContextMenuVerb(lvMain.SelectedFolder, 'delete'); DoContextMenuVerbB(lvMain.Folders[lvMain.InnerListView.ItemIndex], 'delete'); 第二种:删除功能很强大,建议使

关于百度地图InfoWindow响应自定义布局点击事件

大概讲解: 在百度地图上显示一个marker,当marker被点击后,显示自定义的View.当自定义的View被点击后,响应不同Button的点击事件.被百度这个infowindo里面的view坑惨了,一直以为不能点击呢??原来里面的view可以点击也可以被响应!! 先看效果图: 备注:点击详情(进入此任务详情.点击导航进入百度导航) 代码如下:  baiduMap.setOnMarkerClickListener(new BaiduMap.OnMarkerClickListener() { @

如何在Android的ListView中构建CheckBox和RadioButton列表(Android版支持单选和多选的投票项目)

引言 我们在android的APP开发中有时候会碰到提供一个选项列表供用户选择的需求,如在投票类型的项目中,我们提供一些主题给用户选择,每个主题有若干选项,用户对这些主题的选项进行选择,然后提交. 本文以一个支持单选和多选投票项目为例,演示了在一个ListView中如何构建CheckBox列表和RadioButton列表,并分析了实现的原理和思路,提供有需要的朋友参考. 项目的演示效果如下. 数据源 通常我们的数据源来自于数据库.首先,我们构建投票项目类SubjectItem. /** * 主题

【Android】ListView中EditText焦点问题

一.描述: 近期一个项目中需要开发一种类似表格的界面来显示和配置参数,Android并无直接类似表格的控件支持,我采用了ListView中布局EditText和TextView来实现,其中TextView用来显示参数表示符,EditText用来显示参数值,用一个自定义AlertDialog弹出显示,如下图所示. 二.问题: 开发出来的APK软件,在手机上操控是OK的,但在电视上无法操控,具体表现为: 三.解决: 1  通过设置focus停在ListView上,解决ListView无法点击的问题.

Android关于ListView中item与控件抢夺焦点的那些事

在开发中,listview可以说是我们使用最频繁的控件之一了,但是关于listview的各种问题也是很多.当我们使用自定义布局的Listview的时候,如果在item的布局文件里面存在Button或者是CheckBox等控件以及其子类控件的时候,经常会碰到各种控件的点击事件冲突的情况,那么我们如何来处理Listview中这种控件之间焦点冲突的情况呢? 我们以item存在一个Button控件为例 首先,加入我们不设置任何关于焦点的属性,比如focus等,代码如下 view sourceprint?