Сбой прокрутки Recyclerview

#android #scroll #android-recyclerview

#Android #прокрутка #android-recyclerview

Вопрос:

У меня возникла некоторая проблема с прокруткой с помощью карты внутри RecyclerView. При прокрутке внутри RecyclerView есть некоторые дополнительные пробелы, вы можете увидеть это в этом gif:

Это мой адаптер. Это потому, что фрагмент или что?

 public class PosItemAdapter extends RecyclerView.Adapter<PosItemAdapter.MyViewHolder> {

    private List<Item> itemList;
    private ArrayList<CartItem> cartList;
    private Boolean isMixed = false;

    public class MyViewHolder extends RecyclerView.ViewHolder {
        public final View mView;
        public ImageView picture;
        public TextView name;
        public TextView desc;
        public TextView price;

        public MyViewHolder(View view) {
            super(view);
            mView = view;
            picture = (ImageView) view.findViewById(R.id.list_pos_item_picture);
            name = (TextView) view.findViewById(R.id.list_pos_item_name);
            price = (TextView) view.findViewById(R.id.list_pos_item_price);

        }
    }

    public PosItemAdapter(ArrayList<Item> itemList, Boolean isMixed) {
        this.itemList = itemList;
        this.isMixed = isMixed;
    }

    public Item getValueAt(int position) {
        return itemList.get(position);
    }

    @Override
    public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        View itemView = LayoutInflater.from(parent.getContext())
                .inflate(R.layout.list_pos_item_layout, parent, false);

        return new MyViewHolder(itemView);
    }

    @Override
    public void onBindViewHolder(final MyViewHolder holder, final int position) {


        holder.mView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {


            }
        });
    }

    @Override
    public int getItemCount() {
        if (itemList != null) {
            return itemList.size();
        } else {
            return 0;
        }

    }
}
  

Комментарии:

1. предоставьте некоторый код

2. Поскольку я не могу сказать, RecyclerView правильно ли вы реализовали, я укажу вам на этот документ , взгляните на советы и рекомендации внизу. Вы также можете попробовать отключить аппаратное ускорение в представлении и посмотреть, изменится ли поведение. Все ли устройства отображают один и тот же артефакт?

3. У меня была похожая проблема, когда я использовал несколько анимаций для элементов. Вы пробовали удалить анимацию?

4. @RahulKhurana обновлен с помощью моего адаптера

5. @GaryBak Позвольте мне попробовать отключить аппаратное ускорение. Да, это происходит и на других устройствах

Ответ №1:

Решаемая проблема заключалась в высоте моей карты. Я установил значение wrap_content, и сбой исправлен.

Комментарии:

1. Будьте осторожны с размером карты, установленным в wrap_content. Если содержимое вашей карты изменится, даже если размеры не будут отличаться, это может привести к неожиданной прокрутке recyclerview. Попробуйте программно установить высоту карты во время привязки.