Nano Hash - криптовалюты, майнинг, программирование

android recyclerview удаление всех элементов конфликтует с украшением элемента первого элемента

чтобы удалить все элементы из recyclerview, я использую следующий код:

    int size = recyclerViewAdapter.getItemCount();
    recyclerViewAdapter.clearList();
    recyclerViewAdapter.notifyItemRangeRemoved(0, size);

представление ресайклера использует следующее ItemDecoration:

public class CollectionsDecoration extends RecyclerView.ItemDecoration {
    private int margin;

    public CollectionsDecoration(Context context) {
        margin = MeasurementsComputer.getPX(5, context);
    }

    @Override
    public void getItemOffsets(@NonNull Rect outRect, @NonNull View view, @NonNull RecyclerView parent, @NonNull RecyclerView.State state) {
        super.getItemOffsets(outRect, view, parent, state);

        outRect.left = 0;
        outRect.right = 0;
        outRect.bottom = 0;
        if (parent.getChildAdapterPosition(view) == 0)
            outRect.top = 15 * margin;
        else
            outRect.top = 0;
    }
}

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


  • Можете ли вы показать изображение проблемы здесь? 18.02.2020
  • @VrushiPatel да, гифка добавлена! 18.02.2020
  • не давайте маржу элементу, вместо этого используйте заполнение recyclerview. 18.02.2020
  • @VrushiPatel отличное решение, спасибо! но я не понимаю, почему украшение не уважают! 18.02.2020
  • Yhh, это предмет спекуляций, я думаю ... ха-ха :) 19.02.2020

Ответы:


1

Если я правильно понимаю, вы хотите сохранить украшение предмета при удалении всех предметов? В этом случае вы можете попробовать добавить отдельное представление сверху и, когда список пуст, установить его видимость на View.VISIBLE, а когда список не пуст, установить его на View.INVISIBLE.

Пример пользовательского представления в качестве декоратора:


    <View
            android:id="@+id/dividerView"
            android:layout_width="match_parent"
            android:layout_height="1dp"
            android:background="#E3E4E5" />
18.02.2020
Новые материалы

Кластеризация: более глубокий взгляд
Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

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

Частный метод Python: улучшение инкапсуляции и безопасности
Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

Как я автоматизирую тестирование с помощью Jest
Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..