微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在RecyclerView中将选取框添加到TextView

如何解决在RecyclerView中将选取框添加到TextView

我有一个RecyclerView,其中有一个ImageView一个TextView

由于TextView中的文本可能很长,我希望它可以连续滚动。

RecyclerView中的项目如下:(我在所有示例中都写了相同的长文本,只是为了显示一个示例)

enter image description here

TextView的xml是:

<TextView
    android:id="@+id/tv_Link"
    android:layout_width="wrap_content"
    android:layout_height="20dp"
    android:layout_alignStart="@+id/imagecard"
    android:layout_alignEnd="@+id/imagecard"
    android:layout_alignBottom="@+id/imagecard"
    android:elevation="50dp"
    android:ellipsize="marquee"
    android:marqueeRepeatLimit="marquee_forever"
    android:scrollHorizontally="true"
    android:text="1111111222222223333333" />

,并在我的适配器中找到RecyclerView

tv_Link.setSingleLine();
tv_Link.setSelected(true);

问题是,当加载RecyclerView时,文本没有移动。仅当我移动到另一个活动然后返回该布局时,它才会显示文本移动。

如何确保在加载RecyclerView时不仅在活动之间移动时它还能正确移动?

谢谢

此布局的完整XML为:

<?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="wrap_content"
    android:layout_height="wrap_content"
    android:background="@color/colorWhite"
    android:orientation="vertical">

    <androidx.cardview.widget.CardView
        android:id="@+id/imagecard"
        android:layout_width="110dp"
        android:layout_height="160dp"
        android:layout_marginEnd="24dp"
        app:cardCornerRadius="10dp">

        <ImageView
            android:id="@+id/iv_Image"
            android:layout_width="110dp"
            android:layout_height="140dp"
            android:scaleType="fitXY" />

    </androidx.cardview.widget.CardView>

    <TextView
        android:id="@+id/tv_Link"
        android:layout_width="wrap_content"
        android:layout_height="20dp"
        android:layout_alignStart="@+id/imagecard"
        android:layout_alignEnd="@+id/imagecard"
        android:layout_alignBottom="@+id/imagecard"
        android:elevation="50dp"
        android:fontFamily="@font/assistant_semibold"
        android:gravity="center"
        android:textColor="@color/colorLightPurple"
        android:textSize="8sp" />

    <TextView
        android:id="@+id/tv_Name"
        android:layout_width="100dp"
        android:layout_height="wrap_content"
        android:layout_below="@+id/imagecard"
        android:layout_marginTop="8dp"
        android:drawablePadding="8dp"
        android:ellipsize="end"
        android:fontFamily="@font/assistant_semibold"
        android:maxLines="1"
        android:textColor="@color/colorGrayText"
        android:textSize="14sp" />

    <TextView
        android:id="@+id/tv_A"
        android:layout_width="100dp"
        android:layout_height="wrap_content"
        android:layout_below="@+id/tv_Name"
        android:layout_marginTop="4dp"
        android:layout_marginBottom="12dp"
        android:drawablePadding="8dp"
        android:ellipsize="end"
        android:fontFamily="@font/assistant"
        android:maxLines="1"
        android:textColor="@color/colorGrayText"
        android:textSize="10sp" />

</RelativeLayout>

解决方法

要使其移动,请尝试以下操作:

 tv_Link.setMovementMethod(LinkMovementMethod.getInstance());
 tv_Link.setEllipsize(TextUtils.TruncateAt.MARQUEE);
 tv_Link.setSelected(true);
 tv_Link.setSingleLine(true);

在您的XML中:

    <TextView 
    android:id="@+id/tv_Link"
    android:layout_width="wrap_content"
    android:layout_height="20dp"
    android:layout_alignStart="@+id/imagecard"
    android:layout_alignEnd="@+id/imagecard"
    android:layout_alignBottom="@+id/imagecard"
    android:elevation="50dp"
    android:text="1111111222222223333333"
    android:marqueeRepeatLimit="marquee_forever" 
    android:singleLine="true" />

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。