android - 在 RecyclerView 中预取文本布局,无法解析方法 setTextFuture
问题描述
我正在尝试将 Prefetch Text Layout 添加到我的此处和此处reyclerview
所示。奇怪的是,它只适用于我的定制而不是标准。对于我的标准 TextView,我得到了错误。 TextView
TextViews
Cannot resolve method setTextFuture
另外要补充的是,以前一切正常。标准setText
方法适用于 custom 或 regular TextView
。我总共有四 (4) 个 TextView,并且都返回相同的错误。我将一个转换为自定义 TextView(即使它不是)并且错误消失了。
这是我清理后的代码。
@Override
public void onBindViewHolder(@NonNull RecyclerViewHolder rvh, int position){
rvh.setMtbCard(listFiltered_main.get(position));
}
public class RecyclerViewHolder extends RecyclerView.ViewHolder {
public TextView tv_name;
public LengthTextView tv_length;
public RecyclerViewHolder(final View itemView, final int viewType){
super(itemView);
tv_name =itemView.findViewById(R.id.tv_name);
tv_length =itemView.findViewById(R.id.tv_length);
public void setMtbCard(final TrailsObject trailsObject) {
//not working... getting "Cannot resolve method setTextFuture" error
tv_name.setTextFuture(PrecomputedTextCompat.getTextFuture(
trailsObject.getName_diff(),
tv_name.getTextMetricsParamsCompat(),
null)
);
//seemingly works fine
tv_length.setTextFuture(PrecomputedTextCompat.getTextFuture(
trailsObject.getLength_mi(),
tv_length.getTextMetricsParamsCompat(),
null)
);
}
}
解决方案
使用AppCompatTextView
代替TextView
XML
<android.support.v7.widget.AppCompatTextView
android:id="@+id/tv_id"
/>
在适配器中
import android.support.v7.widget.AppCompatTextView;
public void onBindViewHolder(@NonNull RecyclerViewHolder rvh, int position){
rvh.tv.setTextFuture(PrecomputedTextCompat.getTextFuture(
string_text,
tv.getTextMetricsParamsCompat(),
null) //or your executor
);
}
public class RecyclerViewHolder extends RecyclerView.ViewHolder {
public final AppCompatTextView tv;
public RecyclerViewHolder(final View itemView, final int viewType){
super(itemView);
tv =itemView.findViewById(R.id.tv_id);
//......
}
}
推荐阅读
- ionic-framework - Google Chrome 检查器和 Android 模拟器的问题
- angular - Angular super.ngOnDestroy to unsubscribe/clean up
- node.js - How can I upload new lambda code from s3 via nodejs?
- c# - When creating a subscription with Stripe, automatically charge for the first month
- angular - cannot compile and find module angular/animations
- python - pygame window showing "not responding"
- python - 多级模型 + pymc3.glm
- angular - 如何更改liveAnnouncer的语言
- scala - 应如何设置 Play 应用程序以一次按顺序处理请求?
- regex - 正则表达式 - 删除重复的字符串