ListView的项目longClick无法使用ImageView(Clickable)

Neh*_*haK 5 android listview android-layout

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

一切正常,直到我尝试使用longClick imageView.因为当我触摸时ImageView,listView'slongClick方法没有被调用,并且在拉动触摸后,imageView's单击被调用.

而我希望它是这样的:

当long单击imageView/时listItem,它应该只显示警告,单击imageView它就应该显示fullScreen图像.

请帮助我任何建议.

Neh*_*haK 7

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

我需要在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;
    }
});
Run Code Online (Sandbox Code Playgroud)

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

for superParent布局添加行:

android:descendantFocusability="blocksDescendants"
Run Code Online (Sandbox Code Playgroud)

对于那个imageView:

android:longClickable="true"
Run Code Online (Sandbox Code Playgroud)

示例:

<?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>
Run Code Online (Sandbox Code Playgroud)