android - 当 View 只是一个 Simple View 使用“new TextView”时,如何改为“View inflate(int resource,ViewGroup root, boolean attachToRoot)”方法?
问题描述
当我使用RecyclerView的 Adapter创建ViewHolder时,视图只是一个TextView,所以我不想LayoutInflate.inflate()
与layout.xml文件一起使用。因此,我通过构造函数创建了一个TextView实例,但TextView什么也没显示。现在我想知道有没有办法解决这个问题?</p>
parent.addView(textview)
我以前写过return
,但是它崩溃了。- 当我写 a
layout.xml
和 useLayoutInflate.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;
}
}
解决方案
在 onCreateViewHolder() 尝试将布局参数添加到您在那里创建的 TextView 中。
RecyclerView.LayoutParams params = new RecyclerView.LayoutParams(
RecyclerView.LayoutParams.WRAP_CONTENT, RecyclerView.LayoutParams.WRAP_CONTENT);
textView.setLayoutParams(params);
推荐阅读
- java - 从文件读取时如何添加到 Java LinkedList?
- ruby-on-rails - 在 PSQL 或 .... 中存储 LARGE PDF?
- typescript - 是否可以编写一个通用的 enum-member-name getter?
- angular - 打字稿/角度不是函数错误
- python - xlsxwriter:将 'xl_col_to_name(col)' 解析为 worksheet.set_column() 中使用的值
- css - 将鼠标悬停在背景 DIV (CSS) 上时更改按钮颜色
- java - Apache POI 自动调整大小功能不适用于换行文本(新行)
- junit - 在 SEQUENTIAL 模式下运行功能和场景时如何处理空手道结果,而不是在空手道中并行
- python - 将第一个元素移动到 Numpy 数组的结尾
- ios - 现在在 Xcode 中切换选项卡的快捷方式?