【问题标题】:Android textIsSelectable stops TextView onClick working correctlyAndroid textIsSelectable 停止 TextView onClick 正常工作
【发布时间】:2020-12-03 18:08:30
【问题描述】:

在我当前的 Android 应用程序中,我有一个 MaterialCardView 包装了一个 TextView,我希望它是可复制的,例如我用

android:textIsSelectable="true"

但是,我还需要知道 MaterialCardView 何时在 RecyclerView 项目布局中被点击。

仅当我从子 TextView 中删除 android:textIsSelectable="true" 属性时,才会触发 MaterialCardViewonClickListener

这是完整的 RecyclerView 项目布局

<?xml version="1.0" encoding="utf-8"?>
<com.google.android.material.card.MaterialCardView xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:card_view="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/item_bibtext_cardview"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:clickable="true"
    android:focusable="true"
    card_view:cardBackgroundColor="?attr/colorSurface"
    card_view:cardCornerRadius="10dp"
    card_view:cardElevation="5dp"
    card_view:cardPreventCornerOverlap="false"
    card_view:cardUseCompatPadding="true"
    card_view:contentPadding="10dp">

    <TextView
        android:id="@+id/bibtex"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:textIsSelectable="true"
        android:background="?android:attr/selectableItemBackground"
        android:textColor="?android:attr/textColorPrimary" />

</com.google.android.material.card.MaterialCardView>

如何既检测到对父 MaterialCardView 的点击,又让子 TextView 可选择?

【问题讨论】:

    标签: android onclicklistener materialcardview


    【解决方案1】:

    在您的情况下(使用textIsSelectable="true"TextView 仍将触发OnClick 事件。因此,您可以简单地将 OnClickListener 添加到您的 TextView 并将其链接到现有的 CardView 点击行为。

    这会涵盖你的情况吗?

    【讨论】:

    • 这确实允许我捕获 TextView 点击,但是用户必须点击两次才能“触发”点击
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-20
    相关资源
    最近更新 更多