Nested Recyclerview (Внутренний обзор повторного просмотра) Как оптимизировать? прокрутка, проблема с производительностью

Я боролся с этой проблемой [вложенного реселлера].

Самая большая проблема об этом - производительность.

Когда я прокручиваю вниз или вверх, возникают раздражающие лаги.

Я нашел несколько советов о том, что [использовать расширяемое представление переработчика, а не вложенное представление переработчика], но я не могу приспособить его к моему случаю.

Я прикреплю свою структуру и мой код.

Не могли бы вы проверить это и дать мне несколько хороших советов? Спасибо заранее.

  • 1> Это моя структура элемента списка. Recyclerview с элементом CardView, и у каждого cardView есть элемент списка. его длина является переменной, поэтому я сделал это с помощью recyclerview.

Структура рециклирования

  • 2> Это мой код.
  • Код в ViewHolder

    public static class ViewHolder extends RecyclerView.ViewHolder {
    ...
        ImageView issueImg;
        RecyclerView issue_poll_detail_list;
    ...
        RelativeLayout commentLayout;
        TextView commentTxt;
    ...
    
    public ViewHolder(View view) {
        super(view);
    
        issueImg = (ImageView) view.findViewById(R.id.issue_card_img);
    
        issue_poll_detail_list = (RecyclerView) view.findViewById(R.id.issue_poll_detail_list);
        issue_poll_detail_list.setNestedScrollingEnabled(false);
        issue_poll_detail_list.setHasFixedSize(true);
        issue_poll_detail_list.setFocusable(false);
    
        issue_poll_detail_list.setDescendant...(ViewGroup.FOCUS_BLOCK_DESCENDANTS);
        issue_poll_detail_list.setFocusableInTouchMode(false);
    
        ...
        commentLayout = (RelativeLayout) view.findViewById(R.id.issue_poll_footer_reply);
        commentTxt = (TextView) view.findViewById(R.id.issue_poll_footer_reply_txt);
    
        ...
    

& * Код в адаптере

    holder.issue_poll_detail_list.setLayoutManager(new WrapContentLinearLayoutManager(context));
    ((SimpleItemAnimator) holder.issue_poll_detail_list.getItemAnimator()).setSupportsChangeAnimations(false);

    pollAdapter = new PollAdapter(context, glideRequestManager, issuePolls.get(holder.getAdapterPosition()), issuePolls.get(holder.getAdapterPosition()).getNumAnswer(),
            issuePolls.get(holder.getAdapterPosition()).getCalcStartTime(), issuePolls.get(holder.getAdapterPosition()).getCalcEndTime());


    holder.issue_poll_detail_list.setAdapter(pollAdapter);

Спасибо!!!

0 ответов

Другие вопросы по тегам