android-根据需要滚动每个RecyclerView元素中的TextView

rak*_*das 2 android textview recycler-adapter android-recyclerview

我有一个RecyclerView(ytRC),在该RecyclerView中,每个元素都有一个缩略图和一个相应的标题,该标题通过适配器(ResultsAdapter)进入RecyclerView内部,该适配器将缩略图和标题放入cardview中。我想使cardview中的标题变成一行,这很容易。但是,有些标题过长,因此无法使用。我认为选取框文本视图将是解决此问题的好方法,因此我开始寻找解决方案。

我发现了一些成果,如这个这个。但是,这些解决方案仅能部分起作用,这意味着RecyclerView中的50个元素中只有1个实际滚动了,这取决于它们的长度。我认为发生这种情况是因为我正在调用,title.setEnabled(true);并且title.requestFocus();使用的onBindViewHolder()方法,ResultsAdapter并且仅当在RecyclerView中生成唯一的某个视图时,文本才被破坏。

我想尝试的另一个解决方案是创建一个自定义TextView类ScrollingTextView

import android.content.Context;
import android.support.annotation.Nullable;
import android.util.AttributeSet;


public class ScrollingTextView extends android.support.v7.widget.AppCompatTextView {
public ScrollingTextView(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
    super(context, attrs, defStyleAttr);
    init();
}

public ScrollingTextView(Context context, AttributeSet attrs) {
    super(context, attrs);
    init();
}

private void init() {
    //set scrolling
    setSelected(true);
    requestFocus();
}
}
Run Code Online (Sandbox Code Playgroud)

但是,使用该类将产生相同的结果。那么,我该如何在每个文本太多的RecyclerView元素中将textview框起来?

God*_*win 5

字幕很容易滚动长文本视图

<TextView
   android:text="lunch 20.00 | Dinner 60.00 | Travel 60.00 | Doctor 5000.00 | lunch 20.00 | Dinner 60.00 | Travel 60.00 | Doctor 5000.00"
   android:id="@+id/TextView02"
   android:layout_width="200dip"
   android:layout_height="wrap_content"
   android:marqueeRepeatLimit="marquee_forever"
   android:ellipsize="marquee"
   android:singleLine="true"
   android:focusable="true"
   android:inputType="text"
   android:maxLines="1">
</TextView>
Run Code Online (Sandbox Code Playgroud)

并在程序中

holder.textView.setSelected(true);
Run Code Online (Sandbox Code Playgroud)

这将自动滚动TextView中的长文本。