/** * 加载技术类型数据 ( Android、iOS、前端、拓展资源、App ) * * @param easyRecyclerViewHolder easyRecyclerViewHolder * @param position position */ private void loadingTechnology(EasyRecyclerViewHolder easyRecyclerViewHolder, int position) { BaseGankData baseGankData = this.getItem(position); if (baseGankData == null) return; TextView dataDateTV = easyRecyclerViewHolder.findViewById(R.id.data_date_tv); TextView dataTitleTV = easyRecyclerViewHolder.findViewById(R.id.data_title_tv); TextView dataViaTV = easyRecyclerViewHolder.findViewById(R.id.data_via_tv); TextView dataTagTV = easyRecyclerViewHolder.findViewById(R.id.data_tag_tv); // 标题 if (TextUtils.isEmpty(baseGankData.desc)) { dataTitleTV.setText(""); } else { dataTitleTV.setText(baseGankData.desc.trim()); } // 时间 if (baseGankData.publishedAt == null) { dataDateTV.setText(""); } else { dataDateTV.setText(DateUtils.getTimestampString(baseGankData.publishedAt)); } // 小编 if (TextUtils.isEmpty(baseGankData.who)) { dataViaTV.setText(""); } else { dataViaTV.setText(this.context.getString(R.string.common_via, baseGankData.who)); } if (TextUtils.isEmpty(baseGankData.url)) { dataTagTV.setVisibility(View.GONE); } else { this.setTag(dataTagTV, baseGankData.url); } }
/** * 加载 福利 * * @param easyRecyclerViewHolder easyRecyclerViewHolder * @param position position */ private void loadingWelfare(EasyRecyclerViewHolder easyRecyclerViewHolder, int position) { BaseGankData baseGankData = this.getItem(position); if (baseGankData == null) return; RatioImageView welfareIV = easyRecyclerViewHolder.findViewById(R.id.welfare_iv); if (position % 2 == 0) { welfareIV.setImageRatio(0.7f); } else { welfareIV.setImageRatio(0.6f); } // 图片 if (TextUtils.isEmpty(baseGankData.url)) { GlideUtils.displayNative(welfareIV, R.mipmap.img_default_gray); } else { GlideUtils.display(welfareIV, baseGankData.url); } }
/** * 加载每日干货类型数据 * * @param easyRecyclerViewHolder easyRecyclerViewHolder * @param position position */ private void loadingDaily(EasyRecyclerViewHolder easyRecyclerViewHolder, int position) { GankDaily dailyData = this.getItem(position); if (dailyData == null) return; ImageView dailyIV = easyRecyclerViewHolder.findViewById(R.id.daily_iv); TextView dailyDateTV = easyRecyclerViewHolder.findViewById(R.id.daily_date_tv); TextView dailyTitleTV = easyRecyclerViewHolder.findViewById(R.id.daily_title_tv); TextView androidTagTV = easyRecyclerViewHolder.findViewById(R.id.daily_android_tag_tv); TextView iOSTagTV = easyRecyclerViewHolder.findViewById(R.id.daily_ios_tag_tv); TextView jsTagTV = easyRecyclerViewHolder.findViewById(R.id.daily_js_tag_tv); /* * 标题 和 日期 * * 如果没有视频的title和date就找福利的title和date,实在没有就,完! */ if (dailyData.results.videoData != null && dailyData.results.videoData.size() > 0) { BaseGankData video = dailyData.results.videoData.get(0); dailyTitleTV.setText(video.desc.trim()); dailyDateTV.setText( DateUtils.date2String(video.publishedAt.getTime(), Constant.DAILY_DATE_FORMAT)); } else if (dailyData.results.welfareData != null && dailyData.results.welfareData.size() > 0) { BaseGankData welfare = dailyData.results.welfareData.get(0); dailyTitleTV.setText(welfare.desc.trim()); dailyDateTV.setText( DateUtils.date2String(welfare.publishedAt.getTime(), Constant.DAILY_DATE_FORMAT)); } else { dailyTitleTV.setText("这期没福利了,安心学习吧!"); dailyDateTV.setText(""); } // 图片 if (dailyData.results.welfareData != null && dailyData.results.welfareData.size() > 0) { final BaseGankData welfare = dailyData.results.welfareData.get(0); GlideUtils.display(dailyIV, welfare.url); dailyIV.setOnClickListener( v -> { if (MainAdapter.this.listener != null) MainAdapter.this.listener.onClickPicture(welfare.url, welfare.desc, v); }); } else { GlideUtils.displayNative(dailyIV, R.mipmap.img_default_gray); } /* * 标签 ListView 和 RecyclerView 都要写else 因为复用问题 * 忧伤 */ if (dailyData.category == null) { androidTagTV.setVisibility(View.GONE); iOSTagTV.setVisibility(View.GONE); jsTagTV.setVisibility(View.GONE); } else { if (dailyData.category.contains(GankApi.DATA_TYPE_ANDROID)) { androidTagTV.setVisibility(View.VISIBLE); } else { androidTagTV.setVisibility(View.GONE); } if (dailyData.category.contains(GankApi.DATA_TYPE_IOS)) { iOSTagTV.setVisibility(View.VISIBLE); } else { iOSTagTV.setVisibility(View.GONE); } if (dailyData.category.contains(GankApi.DATA_TYPE_JS)) { jsTagTV.setVisibility(View.VISIBLE); } else { jsTagTV.setVisibility(View.GONE); } } }