java - recyclerView如何动态设置viewHolder

查看:290
本文介绍了java - recyclerView如何动态设置viewHolder的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

我要实现一个动态布局,需要联网获取数据之后确定布局的数量
但是在fragment初始化的时候,没有数据的话就创建holder,这样子holder为空了,不知道要如何重新创建holder或者是让holder在获取到数据后再创建。
请问要如何实现?

public HourlyViewHolder(View itemView, Context context,List<WeatherData> list) {
        super(itemView);
        this.weatherDataList = list;
        hourlyLinearLayout = (LinearLayout) itemView.findViewById(R.id.card_hourly_Linear);
        //循环绘制hourlyList
        if (list.size() != 0) {
            for (int i = 0; i < list.get(0).getHourly_forecast().size(); i++) {
                View view = View.inflate(context, R.layout.hourly_item, null);
                hourlyTimeText.add((TextView) view.findViewById(R.id.tv_hourly_time));
                hourlyTempText.add((TextView) view.findViewById(R.id.tv_hourly_temp));
                hourlyWetText.add((TextView) view.findViewById(R.id.tv_hourly_wet));
                hourlyWindText.add((TextView) view.findViewById(R.id.tv_hourly_wind));
                hourlyLinearLayout.addView(view);
            }
        }
    }
    

解决方案

不清楚你描述的是什么,假如是有多种布局,那你就用getItemViewType(int position)方法返回不同的类型,在onCreateViewHolder(ViewGroup parent, int viewType) 的时候,根据不同的viewType来在viewHold里面添加不同的布局,假如你是一个布局里面就有动态的布局,那你就用代码动态控制(建议写个自定义控件传进ViewHolde里面)

这篇关于java - recyclerView如何动态设置viewHolder的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆