2

我有一个带有自定义适配器的 ListView,它使用 EditText 和 TextView 填充项目:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:layout_width="match_parent"
              android:layout_height="wrap_content">

    <EditText
        android:id="@+id/et_choice_prob"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:inputType="numberSigned"/>

    <TextView
        android:id="@+id/tv_choice_name"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_toRightOf="@id/et_choice_prob"
        android:layout_alignBaseline="@id/et_choice_prob"
        android:layout_marginLeft="5dip"
        />


</RelativeLayout>

如果我想设置一个OnItemClickListener它永远不会被调用,因为 EditText 窃取了焦点。

另一个线程提到我应该设置focusablefalse,这将删除实际编辑 TextView 的能力。

我也尝试将 设置descendantFocusabilityListView任何可用的选项,但没有成功。

适配器没有做任何花哨的事情,但我会根据要求提供源代码。其他一切都以相同的方式在另一个上完成ListFragment并且有效。

4

3 回答 3

1

Try adding this code in yout EditText tag

android:focusable="true"
android:focusableInTouchMode="true"
于 2016-08-05T09:35:29.700 回答
0

在适配器类中的单个项目的视图上设置 onTouchlistener。此外,您还必须管理列表的状态,以便在滚动列表时禁用 onTouch,当不滚动时,onTouch 应该照常工作。它在我的项目中的回收站视图上运行良好。也应该与 ListView 一起使用。

于 2018-07-06T06:41:05.227 回答
0

设置setOnClickListener为在适配器RelativeLayout的方法中膨胀列表项视图时。getViewEditText与父级不匹配,因此当您单击列表行的另一侧时,这必须有效。

于 2016-08-05T10:47:04.820 回答