`

listview的item中包含button导致item不能选中

    博客分类:
  • java
阅读更多

今天发现程序有个bug,listview的item不能选中,核实后确认原因是由于item中有button

 

参考解释:

http://www.cnblogs.com/ycmoon/archive/2011/04/25/2027728.html

我们看到了一行代码定义的变量的意思是“当前View将屏蔽他所有子控件的Focus状态,即便这些子控件是可以Focus的”,其实这段话的意思就是这个变量代表着当前的View将不顾其子控件是否可以Focus自身接管了所有的Focus,通常默认能获得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=”blocksDescendant”即可,这样Item Layout就屏蔽了所有子控件获取Focus的权限,不需要针对Item Layout中的每一个控件重新设置focusable属性了,如此就可以顺利的响应onItemClickListener中的onItenClick()方法了。

分享到:
评论

相关推荐

    listView item和其中的Button强焦点问题

    然而,如果ListView的item中包含Button或其他可聚焦的子视图,焦点处理可能会变得复杂。 问题的核心在于,ListView的item和其内部的Button都希望能够获得焦点。通常,ListView的焦点管理是全局的,而Button的焦点则...

    listView上增加button点击事件

    然而,在实际应用中,我们经常需要在ListView的每一项(item)中添加按钮(button),以便用户进行交互操作。标题"listView上增加button点击事件"所涉及的核心知识点是如何在ListView的item中嵌入Button,并同时处理...

    C# ListView中添加多种自定义控件源码

    4. 最后,将自定义的ListViewItem添加到ListView控件中。 ```csharp ListView1.Items.Add(item); ``` 三、添加ComboBox控件 1. 同样,创建一个自定义的ListViewItem类,这次添加ComboBox字段。 ```csharp public ...

    删除ListView选中的item

    "删除ListView选中的item"这个话题涉及到用户交互、数据管理和视图更新等核心知识点。在这个场景下,用户点击“清理”按钮后,ListView的每一项前面会显示一个复选框,用户可以通过选择复选框来标记要删除的item,...

    ListView中添加Button点击事件并改变状态

    在Android开发中,ListView是一种常用的组件,用于展示可滚动的多行数据列表。而在这个场景中,我们讨论的是如何在ListView的每一项中添加Button,并为这个Button设置点击事件,以便在用户点击时能响应并改变Button...

    android listView含CheckBox、Button、EditText

    在设计用户界面时,我们有时需要在ListView的每一项中包含多种交互元素,如CheckBox、Button和EditText,以提供更丰富的功能。本篇将详细介绍如何在ListView中集成这些组件以及处理它们的交互逻辑。 1. **ListView...

    ListView的Item带单选按钮

    这个Adapter将负责加载包含单选按钮的布局到ListView的每个Item中。 - 在Adapter的`getView()`方法中,为每个Item设置单选按钮,并确保它们属于同一个RadioGroup,以便实现单选效果。 2. **定义Item布局** - 创建...

    listview item子控件删除跳转,点击更改背景色

    在这个场景中,我们主要讨论两个关键点:一是如何实现在ListView的item中的子控件被点击时删除该条目并进行页面跳转;二是如何实现点击item时改变其背景色。 首先,让我们来看如何处理ListView item的子控件点击...

    android 的listview 内部item的布局包含checkbox控件

    在ListView中,我们有时需要在每个Item(列表项)内加入可选的元素,如Checkbox,以实现多选、勾选等交互功能。本篇文章将深入探讨如何在ListView的内部Item布局中添加并处理Checkbox控件。 首先,我们需要创建一个...

    listview里选中CheckBox

    通过以上步骤,你就可以在Android Studio环境中实现一个具备全选、反选、取消选择和确认删除功能的ListView,其中包含CheckBox的示例应用了。在实际开发中,你可能还需要考虑性能优化,比如使用ViewHolder模式来提高...

    listview中添加CheckBox的完美实现

    首先,我们需要在布局文件中添加一个 ListView 和两个 Button: ```xml android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <ListView android:id...

    WPF ListView 漂亮样式

    <Style TargetType="ListViewItem"> ... </ListView.ItemContainerStyle> ``` 6. **交互行为和动画** 利用WPF的事件系统和动画库,我们可以实现ListView的各种交互效果,如点击高亮、滑动...

    ListView Button ImageView 里应用selector选择器切换图片并保持住

    在Android开发中,ListView、Button和ImageView是我们经常使用的控件,它们在用户界面设计中扮演着重要角色。为了提供更好的用户体验,我们常常需要为这些控件添加交互效果,比如当用户触摸时改变图像,而当触摸离开...

    ListView多选,全选,反选,全不选

    本篇将详细介绍如何在ListView中实现多选、全选、反选和全不选功能。 首先,我们需要了解ListView的基本结构。ListView通常由Adapter驱动,Adapter负责将数据转化为View显示在列表中。每个View(即ListView的一个...

    listview解决条目错乱

    然而,在实际使用过程中,特别是当ListView的item中包含可交互的组件,如Checkbox、ToggleButton等时,用户滚动ListView时可能会遇到条目错乱的现象。这种情况主要是由于ListView的复用机制导致的,为了解决这个问题...

    C#实现ListView选中项向上或向下移动的方法

    要实现选中项的移动,我们可以利用ListView的Items集合,该集合包含了ListView中的所有项(ListViewItem对象)。我们可以通过添加、移除和插入操作来改变项的位置。在本文的示例中,我们通过两个按钮事件(buttonUp_...

    delphi实现两个listview之间的item拖拽

    在ListView1的OnMouseDown事件中,记录下按下时的位置和选中的Item: ```delphi procedure TForm1.ListView1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); var Item:...

    C#使用listView增删操作实例

    在这个函数内,`coutNumber`是一个计数器,用于生成第一列和第二列的文本内容,然后创建一个新的`ListViewItem`,并将其添加到`listView1`中。`new ListViewItem(new string[] { item1Str, item2Str })`这行代码表示...

    C# Winform使用ListView实现导航菜单

    4. 在`ListView`中动态或静态添加`ListViewItem`,为每个项设置文本、图标(从`ImageList`中获取)以及关联的`UserControl`。 5. 为`ListView`的`ItemSelectionChanged`事件编写事件处理程序,当用户选择新的菜单项...

    listview中的单选按钮多选按钮

    上述代码中,每次getView()被调用时,都会根据当前position更新RadioButton或CheckBox的状态,这样可以避免因ListView项复用导致的显示错误。同时,对于多选,我们需要在数据源中存储选中状态,以便在ListView滚动...

Global site tag (gtag.js) - Google Analytics