【发布时间】:2019-03-27 12:02:08
【问题描述】:
当我使用一个RecyclerView的Adapter来创建ViewHolder时,视图只是一个TextView,所以我不想使用LayoutInflate.inflate() 带有 layout.xml 文件。因此,我通过构造函数创建了一个 TextView 实例,但 TextView 什么也没显示。现在我想知道有没有办法解决这个问题?
- 我在
return之前写了parent.addView(textview),但它崩溃了。 - 当我写一个
layout.xml并使用LayoutInflate.from().inflate(),效果很好。
@Override
public GeekSearchWordItemAdapter.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
TextView textView = new TextView(mActivity);
textView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, R.dimen.text_size_medium);
textView.setTextColor(ContextCompat.getColor(mActivity, R.color.text_c6));
return new ViewHolder(textView);
}
...
@Override
public void onBindViewHolder(@NonNull GeekSearchWordItemAdapter.ViewHolder holder, int position) {
LevelBean bean = LList.getElement(mDatas, position);
if (bean != null) {
holder.mTxtName.setText(bean.name);
}
}
...
static class ViewHolder extends RecyclerView.ViewHolder {
private TextView mTxtName;
public ViewHolder(View itemView) {
super(itemView);
mTxtName = (TextView) itemView;
}
}
【问题讨论】:
-
你确定
bean != null? -
不用显式返回
GeekSearchWordItemAdapter.ViewHolder吗?
标签: android android-recyclerview android-viewholder