2017-02-11 2 views
2

Привет У меня есть фрагмент с двумя RecyclerViews в нем, один над другим.Переместить макет, когда макет выше сжимается в высоту

Первый - это список элементов, в которых пользователь может принять действие, а второй - где элементы будут заполнены после того, как действие будет предпринято. Поэтому, когда элемент удаляется из верхнего списка, он добавляется в нижний список.

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

Как я могу переместить нижнюю recyclerview вверх, чтобы заполнить пробел, созданный когда-то элемент удаляется из верхней RecyclerView

Вот мой макет XML

<RelativeLayout 
      android:layout_width="match_parent" 
      android:layout_height="match_parent"> 

      <android.support.v7.widget.RecyclerView 
       android:layout_alignParentTop="true" 
       android:id="@+id/pending_tasks" 
       android:layout_marginTop="10dp" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" /> 

      <android.support.v7.widget.RecyclerView 
       android:layout_below="@id/pending_tasks" 
       android:id="@+id/completed_tasks" 
       android:layout_marginTop="10dp" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" /> 

     </RelativeLayout> 

Я пытался дозвониться invalidate() на bottom RecyclerView, но это не сработало. Любая помощь будет оценена, спасибо!

+0

Вы можете вставить код адаптеров и что вы делаете, когда элемент удаляется из верхней recyclerview – Dibzmania

ответ

1

Невозможно обновить размер макета, как только он будет отображаться на экране. Если вы измените содержимое своего RecyclerView, вы просто не сможете просто обновить макет, чтобы сжать его.

Я бы предложил использовать одиночный RecyclerView и сохранить нижнюю границу первого списка в некоторой переменной. Затем просто обновите его в соответствии с изменениями в вашем первом списке.

Другое решение, которое может помочь вам: Change Relative layout width and height dynamically

Смежные вопросы