package com.tejia.lijin.app.ui.trends;
|
|
import android.app.Activity;
|
import androidx.recyclerview.widget.GridLayoutManager;
|
import androidx.appcompat.widget.LinearLayoutCompat;
|
import androidx.recyclerview.widget.RecyclerView;
|
import android.text.Layout;
|
import android.view.LayoutInflater;
|
import android.view.View;
|
import android.view.ViewGroup;
|
import android.widget.ImageView;
|
import android.widget.LinearLayout;
|
import android.widget.TextView;
|
|
import com.bumptech.glide.Glide;
|
import com.tejia.lijin.app.R;
|
import com.tejia.lijin.app.entity.TrendsInfo;
|
import com.tejia.lijin.app.util.SetLabels;
|
import com.tejia.lijin.app.util.ToolUtil;
|
import com.tejia.lijin.app.util.downutil.StringUtils;
|
|
import java.util.List;
|
|
public class Trends2Adapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
|
private RecyclerView mRecyclerView;
|
|
private List<TrendsInfo> mList;
|
private Activity mContext;
|
|
private View VIEW_FOOTER;
|
private View VIEW_HEADER;
|
|
//Type
|
private int TYPE_NORMAL = 1000;
|
private int TYPE_HEADER = 1001;
|
private int TYPE_FOOTER = 1002;
|
|
String cate;
|
|
private SendCircleAdapter.CommentClickListener commentClickListener;
|
|
public Trends2Adapter(Activity context, String cate, List<TrendsInfo> list, SendCircleAdapter.CommentClickListener commentClickListener) {
|
this.mList = list;
|
this.cate = cate;
|
this.mContext = context;
|
this.commentClickListener = commentClickListener;
|
}
|
|
@Override
|
public Trends2Adapter.MyHolder onCreateViewHolder(ViewGroup parent, int viewType) {
|
if (viewType == TYPE_FOOTER) {
|
return new MyHolder(VIEW_FOOTER);
|
} else if (viewType == TYPE_HEADER) {
|
return new MyHolder(VIEW_HEADER);
|
} else {
|
View view = LayoutInflater.from(mContext).inflate(R.layout.item_trends2, parent, false);
|
MyHolder holder = new MyHolder(view);
|
return holder;
|
}
|
}
|
|
@Override
|
public void onBindViewHolder(RecyclerView.ViewHolder holder, final int position) {
|
final MyHolder viewHolder = (MyHolder) holder;
|
if (!isHeaderView(position) && !isFooterView(position)) {
|
final TrendsInfo info = mList.get(position);
|
ToolUtil.setShape_bg(mContext, 10, "#ffffffff", viewHolder.item_trends2);
|
Glide.with(mContext).load(info.getPicture())
|
.into(viewHolder.item_trends2_img);
|
// viewHolder.item_trends2_img.setBackground(mContext.getResources().getDrawable(R.drawable.shape_addzfb_top_hint));
|
viewHolder.item_trends2_days.setText(info.getDays());//天
|
viewHolder.item_trends2_hours.setText(info.getHours());//时
|
viewHolder.item_trends2_min.setText(info.getMin());//分
|
viewHolder.item_trends2_title.setText(info.getName());
|
viewHolder.item_trends2_content.setText(info.getRemark());
|
if (viewHolder.item_trends2_label.getChildCount() > 0) {
|
viewHolder.item_trends2_label.removeAllViews();
|
}
|
//label 标签
|
if (info.getLabels() != null && info.getLabels().size() > 0) {
|
viewHolder.item_trends2_label.setVisibility(View.VISIBLE);
|
SetLabels.addLabel(mContext, viewHolder.item_trends2_label, info.getLabels());
|
} else {
|
viewHolder.item_trends2_label.setVisibility(View.GONE);
|
}
|
/*****点击跳转*/
|
viewHolder.item_trends2.setOnClickListener(new View.OnClickListener() {
|
@Override
|
public void onClick(View view) {
|
if (info.getParams() != null) {
|
ToolUtil.setClickSpe(info, mContext);
|
// mContext.startActivity(new Intent(mContext, ShareBrowserActivity.class)
|
// .putExtra("url", info.getParams().getString("url")));
|
}
|
}
|
});
|
|
info.setComment("");
|
//评论信息
|
if (StringUtils.isNullOrEmpty(info.getComment())) {
|
viewHolder.ll_comment_content.setVisibility(View.GONE);
|
} else {
|
viewHolder.ll_comment_content.setVisibility(View.VISIBLE);
|
viewHolder.tv_comment_content.setText(info.getComment());
|
}
|
|
viewHolder.ll_comment_content.setOnClickListener(new View.OnClickListener() {
|
@Override
|
public void onClick(View v) {
|
|
}
|
});
|
|
viewHolder.tv_comment_content.setMaxLines(6);
|
|
|
viewHolder.ll_copy_recommend.setOnClickListener(new View.OnClickListener() {
|
@Override
|
public void onClick(View v) {
|
if (commentClickListener != null) {
|
commentClickListener.onCopyClick(position);
|
}
|
}
|
});
|
|
viewHolder.tv_comment_content.post(new Runnable() {
|
@Override
|
public void run() {
|
Layout l = viewHolder.tv_comment_content.getLayout();
|
if (l != null) {
|
int lines = l.getLineCount();
|
if (lines > 0) {
|
if (l.getEllipsisCount(lines - 1) > 0) {
|
viewHolder.iv_comment_more.setVisibility(View.VISIBLE);
|
} else {
|
viewHolder.iv_comment_more.setVisibility(View.GONE);
|
}
|
}
|
}
|
}
|
});
|
|
viewHolder.iv_comment_more.setOnClickListener(new View.OnClickListener() {
|
@Override
|
public void onClick(View v) {
|
//显示TextView的全部内容其实就是取消这类隐藏文字的属性
|
viewHolder.tv_comment_content.setMaxLines(200);
|
viewHolder.iv_comment_more.setVisibility(View.GONE);
|
}
|
});
|
|
}
|
}
|
|
@Override
|
public int getItemCount() {
|
int count = (mList == null ? 0 : mList.size());
|
if (VIEW_FOOTER != null) {
|
count++;
|
}
|
|
if (VIEW_HEADER != null) {
|
count++;
|
}
|
return count;
|
}
|
|
@Override
|
public int getItemViewType(int position) {
|
if (isHeaderView(position)) {
|
return TYPE_HEADER;
|
} else if (isFooterView(position)) {
|
return TYPE_FOOTER;
|
} else {
|
return TYPE_NORMAL;
|
}
|
}
|
|
@Override
|
public void onAttachedToRecyclerView(RecyclerView recyclerView) {
|
try {
|
if (mRecyclerView == null && mRecyclerView != recyclerView) {
|
mRecyclerView = recyclerView;
|
}
|
ifGridLayoutManager();
|
} catch (Exception e) {
|
e.printStackTrace();
|
}
|
}
|
|
public void addHeaderView(View headerView) {
|
if (haveHeaderView()) {
|
throw new IllegalStateException("hearview has already exists!");
|
} else {
|
//避免出现宽度自适应
|
ViewGroup.LayoutParams params = new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
|
headerView.setLayoutParams(params);
|
VIEW_HEADER = headerView;
|
ifGridLayoutManager();
|
notifyItemInserted(0);
|
}
|
|
}
|
|
public void addFooterView(View footerView) {
|
if (haveFooterView()) {
|
throw new IllegalStateException("footerView has already exists!");
|
} else {
|
ViewGroup.LayoutParams params = new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
|
footerView.setLayoutParams(params);
|
VIEW_FOOTER = footerView;
|
ifGridLayoutManager();
|
notifyItemInserted(getItemCount() - 1);
|
}
|
}
|
|
private void ifGridLayoutManager() {
|
if (mRecyclerView == null) return;
|
final RecyclerView.LayoutManager layoutManager = mRecyclerView.getLayoutManager();
|
if (layoutManager instanceof GridLayoutManager) {
|
((GridLayoutManager) layoutManager).setSpanSizeLookup(new GridLayoutManager.SpanSizeLookup() {
|
@Override
|
public int getSpanSize(int position) {
|
if (isHeaderView(position) || isFooterView(position)) {
|
return ((GridLayoutManager) layoutManager).getSpanCount();
|
} else {
|
return 1;
|
}
|
}
|
});
|
}
|
}
|
|
private boolean haveHeaderView() {
|
return VIEW_HEADER != null;
|
}
|
|
public boolean haveFooterView() {
|
return VIEW_FOOTER != null;
|
}
|
|
private boolean isHeaderView(int position) {
|
return haveHeaderView() && position == 0;
|
}
|
|
private boolean isFooterView(int position) {
|
return haveFooterView() && position >= getItemCount() - 1;
|
}
|
|
public class MyHolder extends RecyclerView.ViewHolder {
|
LinearLayoutCompat item_trends2;
|
ImageView item_trends2_img;//宣传图
|
TextView item_trends2_days;
|
TextView item_trends2_hours;
|
TextView item_trends2_min;
|
ImageView item_trends2_imgmin;
|
TextView item_trends2_title;
|
TextView item_trends2_content;
|
LinearLayout item_trends2_label;
|
|
//评论区
|
LinearLayout ll_comment_content;
|
TextView tv_comment_content;
|
ImageView iv_comment_more;
|
LinearLayout ll_copy_recommend;
|
|
public MyHolder(View convertView) {
|
super(convertView);
|
item_trends2 = convertView.findViewById(R.id.item_trends2);
|
item_trends2_img = convertView.findViewById(R.id.item_trends2_img);
|
item_trends2_days = convertView.findViewById(R.id.item_trends2_days);
|
item_trends2_hours = convertView.findViewById(R.id.item_trends2_hours);
|
item_trends2_min = convertView.findViewById(R.id.item_trends2_min);
|
item_trends2_imgmin = convertView.findViewById(R.id.item_trends2_imgmin);
|
item_trends2_title = convertView.findViewById(R.id.item_trends2_title);
|
item_trends2_content = convertView.findViewById(R.id.item_trends2_content);
|
item_trends2_label = convertView.findViewById(R.id.item_trends2_label);
|
|
ll_comment_content = convertView.findViewById(R.id.ll_comment_content);
|
tv_comment_content = convertView.findViewById(R.id.tv_comment_content);
|
iv_comment_more = convertView.findViewById(R.id.iv_comment_more);
|
ll_copy_recommend = convertView.findViewById(R.id.ll_copy_recommend);
|
}
|
}
|
}
|