Я построил очень простой интернет-магазин. Я перемещаюсь по приложению с помощью BottomNavigationView (есть одно действие, содержащее navBar и несколько фрагментов, которые открываются из этой панели). Во фрагменте для корзины покупок я даю возможность удалить товары из корзины.
Тогда возникают следующие проблемы:
- Я удаляю элемент, но обновляется только RecyclerView, а не весь фрагмент.
- Это проблема, поскольку макет фрагмента зависит от содержимого RecyclerView (если recyclerView пуст → скрыть весь макет и т. Д.)
Итак, вот мой onBindViewHolder для RecyclerView:
CartAdapter:
@Override
public void onBindViewHolder(ViewHolder holder, final int position) {
final int pos = position;
Item item = CartViewModel.getInstance().mShoppingCartItems.get(position);
vh.nameTextView.setText(item.getmTitle());
vh.quantityTextView.setText(String.valueOf("Anzahl: " + item.getmQuantity()));
vh.priceTextView.setText("€ " + item.getmPrice());
vh.nameTextView.setAllCaps(true);
vh.deleteButton.setBackground(null);
Picasso.with(mContext).load(item.getmPictureLink()).into(vh.pictureImageView);
holder.deleteButton.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
Item theRemovedItem = CartViewModel.getInstance().mShoppingCartItems.get(pos);
CartViewModel.getInstance().mShoppingCartItems.remove(pos);
notifyItemRemoved(pos);
//force the parent Fragment to update it's layout
}
});
}
По сути, мой вопрос: как я могу обновить макет фрагмента из моего CartAdapter? Есть ли другой способ достичь желаемого поведения?