【问题标题】:How to instead "View inflate(int resource,ViewGroup root, boolean attachToRoot)" method when the View just a Simple View used "new TextView"?当 View 只是一个 Simple View 使用“new TextView”时,如何改为“View inflate(int resource,ViewGroup root, boolean attachToRoot)”方法?
【发布时间】:2019-03-27 12:02:08
【问题描述】:

当我使用一个RecyclerView的Adapter来创建ViewHolder时,视图只是一个TextView,所以我不想使用LayoutInflate.inflate() 带有 layout.xml 文件。因此,我通过构造函数创建了一个 TextView 实例,但 TextView 什么也没显示。现在我想知道有没有办法解决这个问题?

  1. 我在return之前写了parent.addView(textview),但它崩溃了。
  2. 当我写一个 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


【解决方案1】:

在 onCreateViewHolder() 中尝试将布局参数添加到您在那里创建的 TextView。

RecyclerView.LayoutParams params = new RecyclerView.LayoutParams(
                 RecyclerView.LayoutParams.WRAP_CONTENT, RecyclerView.LayoutParams.WRAP_CONTENT);
textView.setLayoutParams(params);

【讨论】:

  • 请将您的 xml 文件添加到问题中。
  • 正如 psknik 所写,调试并检查 bean 是否为空。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-09
  • 2011-06-04
相关资源
最近更新 更多