当视图只是一个简单视图使用 "new TextView" 时如何代替 "View inflate(int resource,ViewGroup root, boolean attachToRoot)" 方法?
How to instead "View inflate(int resource,ViewGroup root, boolean attachToRoot)" method when the View just a Simple View used "new TextView"?
当我使用 RecyclerView 的适配器创建 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;
}
}
在 onCreateViewHolder() 中尝试将布局参数添加到您在那里创建的 TextView。
RecyclerView.LayoutParams params = new RecyclerView.LayoutParams(
RecyclerView.LayoutParams.WRAP_CONTENT, RecyclerView.LayoutParams.WRAP_CONTENT);
textView.setLayoutParams(params);
当我使用 RecyclerView 的适配器创建 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;
}
}
在 onCreateViewHolder() 中尝试将布局参数添加到您在那里创建的 TextView。
RecyclerView.LayoutParams params = new RecyclerView.LayoutParams(
RecyclerView.LayoutParams.WRAP_CONTENT, RecyclerView.LayoutParams.WRAP_CONTENT);
textView.setLayoutParams(params);