recyclerView如何动态设置viewHolder

发布于 2022-09-03 12:20:54 字数 1052 浏览 18 评论 0

我要实现一个动态布局,需要联网获取数据之后确定布局的数量
但是在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);
            }
        }
    }
    

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

带上头具痛哭 2022-09-10 12:20:54

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

苄①跕圉湢 2022-09-10 12:20:54

嵌套recyclerView啊 虽然不推荐但是很方便

椵侞 2022-09-10 12:20:54

没看懂你的描述
如果你是RecyclerView的话 和listView是一样的adapter中会先执行getCount()这个方法,如果getCount()返回0的话 后面的方法是不会执行的,所以应该不存在你说的没有数据就创建holder的情况

冷情 2022-09-10 12:20:54

啊说的不清楚吗。。还有人吗
我的recycleview有4种布局,其中一种布局是不确定数据数量的,所以createViewHolder的时候这种布局getCount为0。所以这个时候的这种布局的viewholder就不存在了

多像笑话 2022-09-10 12:20:54

适时设置adapter或notifydatachanged满足不了吗

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文