如何解决在RecyclerView中将选取框添加到TextView
我有一个RecyclerView
,其中有一个ImageView
和一个TextView
。
由于TextView
中的文本可能很长,我希望它可以连续滚动。
RecyclerView
中的项目如下:(我在所有示例中都写了相同的长文本,只是为了显示一个示例)
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 举报,一经查实,本站将立刻删除。