伊卡……洛斯 2016-10-12 08:15 采纳率: 0%
浏览 890

出现内存溢出 请大神帮瞧瞧

CoordinatorLayout+NestedScrollView+RecyclerView 加载更多 我使用 NestedScrollView加载更多 出现内存溢出 请大神帮瞧瞧

nsv.setOnScrollChangeListener(new NestedScrollView.OnScrollChangeListener() {
@Override
public void onScrollChange(NestedScrollView v, int scrollX, int scrollY, int oldScrollX, int oldScrollY) {
View view = nsv.getChildAt(nsv.getChildCount() - 1);
int d = view.getBottom();
d -= (nsv.getHeight() + nsv.getScrollY());
if (d == 0) {
mOffset = mDatas.size();
showDialog(getString(R.string.loading),false);
getLiveRecordData();
}

        }
    });

            下面是adapter:
            public class LiveListAdapter extends RecyclerView.Adapter<LiveListAdapter.MyViewHolder> implements View.OnClickListener {
private LoadingDialog dialog;
private Context mContext;
private MyViewHolder holder;
private List<HomePageNormalModles.DataBean> mDatas;
private View.OnClickListener mListener;
private final double PREVIEW_SCALE = 0.9;
private boolean isMy;
private Handler handler;
private LayoutInflater inflater;
public LiveListAdapter(Context context, List<HomePageNormalModles.DataBean> datas, View.OnClickListener mListener) {
    mContext = context;
    mDatas = datas;
    this.mListener = mListener;
    inflater=LayoutInflater.from(mContext);
    initDialog();
    handler = new Handler(context.getMainLooper());
}

private void initDialog() {
    dialog = new LoadingDialog(mContext, R.style.loading_dialog);
    dialog.setTitle("正在删除");
    dialog.setCancelable(false);// 设置是否可以通过点击Back键取消
    dialog.setCanceledOnTouchOutside(false);// 设置在点击Dialog外是否取消Dialog进度条
}

/**
 * 是不是自己的看到的个人中心
 *
 * @param isMy
 */
public void isMy(boolean isMy) {
    this.isMy = isMy;
}

@Override
public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
    View view = inflater.inflate(R.layout.item_live_record, parent, false);
    holder = new MyViewHolder(view);
    return holder;
}

@Override
public void onBindViewHolder(final MyViewHolder holder, final int position) {
    //TODO 容易内容溢出 需要优化
    ImageLoadUtils.getInstance().displayImageOptions(holder.ivPreview, mDatas.get(position).getThumbUrl(), R.drawable.waiting_hot_health);
    String liveName = mDatas.get(position).getLiveName();
    if (TextUtils.isEmpty(liveName)) {
        holder.tvLiveName.setVisibility(View.GONE);
    } else {
        holder.tvLiveName.setText(StringUtil.appendLiveName(liveName));
        holder.tvLiveName.setVisibility(View.VISIBLE);
    }
    holder.tvStatus.setText(R.string.video_record);

    HomePageNormalModles.DataBean.LiveStatBean liveStat = mDatas.get(position).getLiveStat();
    if (liveStat != null) {
        holder.tvRecomend.setText(String.valueOf(liveStat.getCommentsCount()));
        holder.tvLike.setText(String.valueOf(liveStat.getLikeCount()));
    }
    if (isMy) {
        holder.delete.setVisibility(View.VISIBLE);
    } else {
        holder.delete.setVisibility(View.GONE);
    }
    holder.llShare.setOnClickListener(mListener);
    holder.llShare.setTag(position);
    holder.ivPreview.setOnClickListener(mListener);
    holder.delete.setOnClickListener(mListener);
    holder.ivPreview.setTag(position);
    holder.delete.setTag(position);
    holder.delete.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            if (dialog != null && !dialog.isShowing()) {
                dialog.show();
            }
            deleteRecord(position);
        }
    });

}

@Override
public int getItemCount() {
    return mDatas == null ? 0 : mDatas.size();

}

@Override
public void onClick(View v) {

}

public static class MyViewHolder extends RecyclerView.ViewHolder {
    ImageView ivPreview;
    TextView tvLiveName;
    TextView tvStatus;
    TextView tvRecomend;
    TextView tvLike;
    LinearLayout llShare;
    LinearLayout delete;

    public MyViewHolder(View itemView) {
        super(itemView);
        ivPreview = (ImageView) itemView.findViewById(R.id.element_priview_iv_content);
        tvLiveName = (TextView) itemView.findViewById(R.id.item_live_record_name);
        tvStatus = (TextView) itemView.findViewById(R.id.elment_priview_tv_status);
        tvRecomend = (TextView) itemView.findViewById(R.id.item_live_record_recommend);
        tvLike = (TextView) itemView.findViewById(R.id.live_recorde_tv_like);
        llShare = (LinearLayout) itemView.findViewById(R.id.item_live_record_share);
        delete = (LinearLayout) itemView.findViewById(R.id.item_live_record_delete);
    }
}
  • 写回答

1条回答 默认 最新

  • dabocaiqq 2016-10-12 16:18
    关注
    评论

报告相同问题?

悬赏问题

  • ¥15 高价求中通快递查询接口
  • ¥15 解决一个加好友限制问题 或者有好的方案
  • ¥15 关于#java#的问题,请各位专家解答!
  • ¥15 急matlab编程仿真二阶震荡系统
  • ¥20 TEC-9的数据通路实验
  • ¥15 ue5 .3之前好好的现在只要是激活关卡就会崩溃
  • ¥50 MATLAB实现圆柱体容器内球形颗粒堆积
  • ¥15 python如何将动态的多个子列表,拼接后进行集合的交集
  • ¥20 vitis-ai量化基于pytorch框架下的yolov5模型
  • ¥15 如何实现H5在QQ平台上的二次分享卡片效果?