gpt4 book ai didi

android - 使用 setOnLongClickListener 时 setOnItemClickListener 不起作用 - Android

转载 作者:行者123 更新时间:2023-11-29 01:28:29 25 4
gpt4 key购买 nike

正如主题所暗示的,setOnItemClickListener 在使用 setOnLongClickListener 时不起作用,我在基本适配器中使用的布局如下,

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:baselineAligned="false"
android:descendantFocusability="blocksDescendants"
android:paddingBottom="20dp"
android:paddingTop="5dp">


<com.mikhaellopez.circularimageview.CircularImageView
android:id="@+id/image1"
android:layout_width="70dp"
android:layout_height="70dp"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="2dp"
android:focusable="false"
app:border_color="#EEEEEE"
app:border_width="4dp"/>

<TextView
android:id="@+id/name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/contacts_grid_image"
android:layout_centerHorizontal="true"
android:focusable="false"
android:text="Name"
android:textAppearance="?android:attr/textAppearanceSmall"
android:textSize="11dp"
android:textStyle="bold"/>

<TextView
android:id="@+id/address"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/name"
android:layout_centerHorizontal="true"
android:focusable="false"
android:text="Mobile number"
android:textAppearance="?android:attr/textAppearanceSmall"
android:textSize="9dp"/>


</RelativeLayout>

我正在使用它,

image.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
ClipData.Item item = new ClipData.Item((CharSequence) v.getTag());
String[] mimeTypes = {ClipDescription.MIMETYPE_TEXT_PLAIN};

ClipData dragData = new ClipData("test", mimeTypes, item);

MyDragShadowBuilder myShadow = new MyDragShadowBuilder(holder.image);
if (groups.size() > holder.position) {
v.startDrag(dragData, myShadow, null, 0);

return true;
}
});

还有这个,

gridView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View v, int position, long id) {

Log.i(TAG, "clicked");

}
});

现在,当我点击图像时,项目点击不起作用,但是当我点击 TextView 时,它起作用了,我做错了什么?

另请注意,当我删除 image.setOnLongClickListener() 时,整个 gridview 项目再次变得可点击。

最佳答案

这应该是 GridView 的预期行为,因为 subview 是可点击的,即使它只处理 OnLongClick。

作为解决方法,您可以

  1. setOnClickListener 让 ImageView 执行与在 setOnItemClickListener
  2. 中相同的操作
  3. 考虑使用setOnItemLongClickListener,但这会影响整个RelativeLayout
  4. 使用onTouchListener,但这需要更多的工作

关于android - 使用 setOnLongClickListener 时 setOnItemClickListener 不起作用 - Android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32576595/

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