为了账号安全,请及时绑定邮箱和手机立即绑定

recyclerView如何动态设置viewHolder

recyclerView如何动态设置viewHolder

绝地无双 2019-03-07 14:15:45
我要实现一个动态布局,需要联网获取数据之后确定布局的数量但是在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);            }        }    }
查看完整描述

5 回答

?
Qyouu

TA贡献1786条经验 获得超11个赞

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


查看完整回答
反对 回复 2019-04-23
?
萧十郎

TA贡献1815条经验 获得超13个赞

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


查看完整回答
反对 回复 2019-04-23
?
喵喵时光机

TA贡献1846条经验 获得超7个赞

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

查看完整回答
反对 回复 2019-04-23
?
蛊毒传说

TA贡献1895条经验 获得超3个赞

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

查看完整回答
反对 回复 2019-04-23
  • 5 回答
  • 0 关注
  • 1525 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号