ListView中item与其中的组件(按钮)的焦点获取冲突问题
2015-09-29 11:33
288 查看
本人初学在学习安卓时,遇到过这么一问题。在一个ListView 中,每一个子Item中存在Button(类似的其他自动获取焦点的组件)时,ListView的OnItemClickListener和OnItemLongClickListener将变得不可用,而Button却可以使用。从网上查了很多,大家都说是焦点问题,应对这种情况一般有两种方法:
1.设置android:descendantFocusability="blocksDescendants"其中这条有三个属性,对应这一条为阻挡子空间获取焦点,对应另外两条为可自行百度会有很多说法。 本人一开始以为,设置后子空间如button,将不能被点击。后来试了一下,发现当设置后button得点击还是能用的。后来查了以下,说是能click不一定要获取焦点。其次注意在这条属性是在Layout中加这条属性,当加在ListView中是没有效果的,如
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" android:descendantFocusability="blocksDescendants" >[/code]
如图 ,item可以被电击, button也可以被点击。
好多人说是在ListView中加的话是没有效果的。当只在ListView总加时,如[/code]
<ListView android:id="@+id/listView" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_centerHorizontal="true" android:layout_centerVertical="true"
android:descendantFocusability="blocksDescendants"/>是无效的。[/code]
其次需要注意的是别在Layout中加android:clickable="true"
加了以后,无论怎么设置都不管用了。
2.在子控件中加 android:focusable="false"也可以实现,只需在男些自动获取焦点中的组件加如button,checkbox,edittext等就可以了。设置后也还能Click。
相关文章推荐
- VR制作的规格分析
- codeforces#322 div2
- perl fork多进程
- 时间日期选择器,样式和android5.0自带软件的样式一样
- 韩顺平 java 第25讲 异常
- 移动应用开发必备工具盘点
- 目前流行的CSS+DIV的命名规则
- hdu 4864 Task(贪婪啊)
- Eclipse如何设置字体大小--【Eclipse】
- java生成验证码
- 无序和有序列表的list-style-type 属性值
- OpenGL教程翻译 第十九课 镜面高光
- Android 获取GPS和网络定位信息
- 各种编程语言的深度学习库整理(中英版)
- hdu1199 初学离散化的一点心得
- Display类 提供获取屏幕尺寸和分辨率的信息
- ASP.NET 动态编译、预编译和 WebDeployment 项目(转)
- 安装Symfony2
- mysql查询区分大小写
- SpringMVC+Spring Data JPA+Shiro+EasyUI简单权限管理系统