查看 longclick 被 textView 子级中止

Posted

技术标签:

【中文标题】查看 longclick 被 textView 子级中止【英文标题】:view longclick were abort by textView children 【发布时间】:2021-05-25 22:21:53 【问题描述】:

我有一个包含 textView 的 LinearLayout,然后我将 LongClick 放到此 linearlayout 以显示对话框,但仅长按到 textview 之外的此布局使对话框显示,在 textview 中单击不显示任何内容


    <LinearLayout
        android:id="@id/bubble"
        android:tag="69"
        android:layout_
        android:layout_
        android:layout_marginEnd="30dp"
        android:layout_marginRight="30dp"
        android:descendantFocusability="blocksDescendants"
        android:layout_toEndOf="@id/messageUserAvatar"
        android:layout_toRightOf="@id/messageUserAvatar"
        android:orientation="vertical">

        <TextView
            android:id="@id/messageText"
            android:duplicateParentState="true"
            android:clickable="false"
            android:longClickable="false"
            android:layout_
            android:layout_
            android:layout_marginStart="8dp"
            android:layout_marginLeft="8dp"
            android:layout_marginEnd="4dp"
            android:layout_marginRight="4dp" />

谁能帮忙

【问题讨论】:

长按点击可以使用setOnLongClickListenerviewlayer.setOnClickListener //在这里做任何你想做的事情 【参考方案1】:

我相信这是因为 TextView 位于线性布局之上。解决此问题的简单方法是在所有视图之上放置一个视图,可能使用 FrameLayout,然后放置一个具有透明背景的空视图,然后从该空视图中收听点击。

<View
    android:id="@+id/viewClickLayer"
    android:layout_
    android:layout_
    android:clickable="true"
    android:focusable="true" />

在java上

viewClickLayer.setOnClickListener 
        //do anything you want here

【讨论】:

以上是关于查看 longclick 被 textView 子级中止的主要内容,如果未能解决你的问题,请参考以下文章

在 Android 上“用 longclick 拖动”是不可能的吗?

使用选择时,TextView 的波纹效果卡在长按上

有没有办法遍历 ListView 的所有子视图并将它们转换为 TextView

GridView - 片段 - LongClick

如何在 ExpandableListView [Android] 中设置 LongClick 组

Android:长按时突出显示段落中的句子