gpt4 book ai didi

android - 设置 descendantFocusability ="blocksDescendants"后, ListView 行中的 TextView 无法单击

转载 作者:行者123 更新时间:2023-11-29 15:18:18 27 4
gpt4 key购买 nike

我为 ListView 编写了自定义项目布局。该布局有许多小部件,有些将有自己的点击监听器。

当我单击该行时, ListView 的 onListItemClick 有时起作用,但有时不起作用。

在我花了一些时间搜索之后,我找到了一种方法,在布局的根中设置 android:descendantFocusability="blocksDescendants"。它可以工作,但只有一个 TextView 不能工作,(已经尝试了可点击的、可融合的属性)。在列表的适配器中,我设置了 TextView 的 onClickListener,它起作用了。但这不是自然的,有谁知道如何解决吗?

顺便说一句,有没有办法区分不同小部件的点击?现在,无论我点击什么( TextView 除外),整行的背景选择器都发生了变化。

非常感谢!

//我的列表行布局根

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:descendantFocusability="blocksDescendants"
android:padding="@dimen/medium"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="match_parent">

//糟糕的 TextView

<TextView
android:id="@+id/text"
android:textColor="@android:color/secondary_text_light"
android:textColorLink="@android:color/holo_blue_dark"
android:layout_marginTop="@dimen/small"
android:textAppearance="@android:style/TextAppearance.DeviceDefault"
android:layout_below="@id/nick"
android:layout_alignLeft="@id/nick"
android:layout_width="match_parent"
android:layout_height="wrap_content" />

更新

textview 使用 Linkify 提供一些链接功能。

最佳答案

在花了一些时间尝试后,我解决了这两个问题。

  1. 第一个。如果您自定义的 ListView 的布局有一个已在代码中设置为autolinkLinkify 的 TextView ,则 TextView 中的点击事件不会影响列表的行.您必须扩展您自己的TextView覆盖 onTouchEvent 方法。请看here

  2. 第二个。只需在自定义 ListView 的根节点中设置:android:descendantFocusability="blocksDescendants",然后,在您将拥有自己的onClickListener 的小部件中,设置 android:clickable="true",对我有用。

希望对遇到同样情况的人有用:-)

关于android - 设置 descendantFocusability ="blocksDescendants"后, ListView 行中的 TextView 无法单击,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21891008/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com