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框起来?
字幕很容易滚动长文本视图
<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中的长文本。
归档时间: |
|
查看次数: |
1340 次 |
最近记录: |