android - ListView 项目长单击不适用于 ImageView(可点击)

标签 android android-layout listview

我有一个 listView包含 textview 的项目和 imageView (当点击 imageView 它应该显示全屏图像),当长按任何项目时,应该显示一个弹出窗口。

在我尝试使用 imageView 进行 longClick 之前,一切正常.因为当我触摸 ImageView 时, listView's longClick 方法未被调用,拉动触摸后,imageView's点击接听电话。

我希望它是这样的:

当长按imageView/listItem , 它应该只显示警报和单击 imageView它应该显示全屏图像。

请帮助我提出任何建议。

最佳答案

最后,我找到了这个问题的解决方案:

我需要在 longClickListener 中返回 "true"。 喜欢:

lv.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
    @Override
    public boolean onItemLongClick(AdapterView<?> adapterView, View view, int i, long l) {
        Log.d("debug", "onLongClick = " + i + "  " + view.getTag());
        return true;
    }
});

并且需要在 item_view.xml 中添加以下行:

为 superParent 布局添加行:

android:descendantFocusability="blocksDescendants"

对于那个 imageView :

android:longClickable="true"

示例:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="150dp"
    android:descendantFocusability="blocksDescendants"
    android:gravity="center"
    android:orientation="horizontal">

    <ImageView
        android:id="@+id/text_view"
        android:layout_width="100dp"
        android:layout_height="100dp"
        android:longClickable="true"
        android:background="#ff0000" />

</LinearLayout>

关于android - ListView 项目长单击不适用于 ImageView(可点击),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41631352/

相关文章:

android - Android任务执行中的 "platformAttrExtractor"是什么?

java - Android:制作地理围栏的简单方法?

java - 高分未保存

android - 控制 ListView 中渐变边缘的颜色

java - 根据 ListView 中的点击替换 fragment

Java/Kotlin JSON 解析改进

java - Android 程序启动时崩溃

android - 为什么android在使用小于12sp的尺寸时会发出警告?

java - switch.isChecked 始终为 false

Flutter:ListView禁用触摸屏滚动