#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. Попробуйте программно установить высоту карты во время привязки.