在项目中,item中有3个控件,其中有2个控件是可以正常获取到焦点,但是第三个点击的时候,却出发了Item的点击事件。
android:descendantFocusability // 放在listview中的item的顶级布局上。
Constant Value Description
beforeDescendants
0 The ViewGroup will get focus before any of its descendants. //Item先获取到焦点
afterDescendants
1 The ViewGroup will get focus only if none of its descendants want it. //子控件获取到焦点--- 也就是item无法获取到焦点
blocksDescendants
2 The ViewGroup will block its descendants from receiving focus. //让子控件无法获取焦点 --事实证明子控件是可以获取到焦点的。
ListView默认情况
当item有焦点时,item上的button等子控件获取不到焦点;
当子控件有焦点时,item无焦点无法响应onItemClick事件
ViewGroup.FOCUS_AFTER_DESCENDANTS:表示item的子控件优先于item获得焦点;
ViewGroup.FOCUS_BEFORE_DESCENDANTS:表示item优先于其子控件获得焦点。
解决办法:
- listView.setOnItemSelectedListener(onItemSelectedListener);
- private AdapterView.OnItemSelectedListener onItemSelectedListener =
- new AdapterView.OnItemSelectedListener(){
- @Override
- public void onItemSelected(AdapterView<?> parent, View view,
- int position, long id) {
- //当此选中的item的子控件需要获得焦点时
- parent.setDescendantFocusability(ViewGroup.FOCUS_BEFORE_DESCENDANTS);
- //else parent.setDescendantFocusability(ViewGroup.FOCUS_BEFORE_DESCENDANTS);
- }
- @Override
- public void onNothingSelected(AdapterView<?> parent) {
- parent.setDescendantFocusability(ViewGroup.FOCUS_BEFORE_DESCENDANTS);
- }
- }
相关推荐
listview selector 选中时改变item 子控件 图片状态
android 的listview 内部item的布局包含checkbox控件时,会遇到常见的问题:1.checkbox无法选择;2.选择的checkbox后滑动listview内容时会checkbox选择的值会刷新成原来状态值(即没选中);3.选择listview所有checkbox...
android ListView Button 等控件强行获取焦点导致 item监听无效的解决办法 ,利用ListView 显示多个不同类型的item
ListView1.Items.Item[1].SubItems.GetText); //取得listview某行某列的值 Edit2.Text := listview1.Items[i].SubItems.strings[0]; //读第i行第2列 返回选中行所有子列值.是以回车符分开的,你还要从中剥离...
最近研究android的最常用的控件ListView,感觉挺有趣的,包括Listview的循环机制,item重用机制,上下滑动刷新机制,然后做了一个焦点可滑动的ListView,不知道大家看过或者用过Apple TV没有,Apple TV里面的焦点都...
如果stu_item.xml里面包括button或者checkbox等控件,默认情况下list的item会失去焦点,导致无法响应item的事件,最常用的解决办法是在stu_item.xml的布局文件中设置descendantFocusability属性。 该属性是当一个为...
WPF / MVVM控件,用于在其他元素(例如TreeViewItem或ListViewItem)之上实现文本框(用例:对显示的项目进行就地编辑) 用例:就地编辑 此项目中包含的就地编辑文本控件可以用作开发应用程序的基础,在该应用程序...
原因是item里面存在一些子控件,默认点击获取的焦点跑去子控件去了,点击失效。 解决办法: 在item的根目录加入android:descendantFocusability=”blocksDescendants” <?xml version=1.0 encoding=utf-8?> &...
如果listitem里面包括button或者checkbox等控件,默认情况下listitem会失去焦点,导致无法响应item的事件,怎么解决呢?下面小编给大家分享下listview点击item无响应的解决办法
RecyclerView是个强大的控件,能代替ListView,GridView,能实现瀑布流,还能实现横向ListView,只需要一句代码就能使纵向的ListView变成横向的(主要实现就是布局管理器的选择上)。这里我要实现的是RecyclerView的...
一:item的根布局设置 Android:clickable=true,之后导致item点击事件失效,对根布局设置android:descendantFocusability=blocksDescendants“,以及对...beforeDescendants:viewgroup会优先其子类控件而获取到焦点
1,01.zip Toolbar - Custom status messages and tooltips 用户状态信息与工具提示(3KB)<END><br>2,02.zip Remove system menu from floating toolbar 从浮动工具条中去除系统菜单(2KB)<END><br>3,03....
假如listview的item中有Button,ImageButton,CheckBox等会强制获取焦点的view 此时,listview的item无法获取焦点,从而无法被点击 解决方法:给item的根布局增加以下属性 Android:descendantFocusability=...
在Android TV上一般选中某个View, 都会有焦点突出放大的效果, 但是当在RecyclerView中(ListView或GridView)实现当item View执行放大动画后会被其他的item View遮挡. 原因是: RecyclerView的机制是越靠后的View z-...
1. 在父窗口里,截获自身的或者由子元素(包括控件和菜单等元素)传递的关于界面绘制的消息; 2. 子类化子元素,或者为子元素准备一个新的类(一般来说该类必须继承于MFC封装的某个标准类,如:CButton)。在该子元素里...
《C#全能速查宝典》共分为8章,分别介绍了C#语言基础、Windows窗体及常用控件、Windows高级控件、控件公共属性、方法及事件、数据库开发、文件、数据流与注册表、GDI+绘图技术和C#高级编程,共包含562个C#编程中常用...
4.6.5、ListView 被选中item的背景颜色 82 4.6.6、ListView自定义背景颜色 83 4.6.7、List长按与短按消息映射 84 4.6.8、点击ListView改变背景色 87 4.6.9、自动滚动ListView 88 4.6.10、BaseExpandableListAdapter...
4.6.5、ListView 被选中item的背景颜色 82 4.6.6、ListView自定义背景颜色 83 4.6.7、List长按与短按消息映射 84 4.6.8、点击ListView改变背景色 87 4.6.9、自动滚动ListView 88 4.6.10、BaseExpandableListAdapter...
逻辑运算符 与:a & b 或:a | b 第8页 C#(WINFORM)学习 非:! A 模数运算符 模数运算符 (%) 计算第二个操作数除第一个操作数后的余数。所有数值类 型都具有预定义的模数运算符。如 Console.WriteLine(5 % 2); ...