2016-05-03 2 views
3

I несколько экранов, которые используют RecyclerView, а также имеет небольшой размер Fragment, который находится сверху RecyclerView. Когда отобразится Fragment, я хотел бы убедиться, что могу прокручивать нижнюю часть RecyclerView. Не всегда отображается Fragment. Если бы я использовал поля на RecyclerView, мне нужно было бы динамически удалить и добавить их, когда отобразится Fragment. Я мог бы добавить поля в последний элемент в списке, но это тоже сложно, и если я загружу больше вещей позже (например, разбивка на страницы), мне придется снова снять эти поля.Как добавить поля в RecyclerView для последнего элемента?

Как бы я динамически добавлял или удалял поля для представления? Каковы некоторые другие варианты решения этой проблемы?

ответ

12

Так что, если вы хотите добавить отступы в нижней части вашего RecyclerView вы можете установить paddingBottom, а затем clipToPadding ложь. Вот пример

<android.support.v7.widget.RecyclerView 
    android:id="@+id/my_list" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:clipToPadding="false" 
    android:paddingBottom="100dp" /> 
+1

Это было легче реализовать, и это, казалось, сработало. Спасибо за это. – chubbsondubs

+0

Рад, что помогло –

8

Вы должны использовать Item Decorator.

public class MyItemDecoration extends RecyclerView.ItemDecoration { 

    @Override 
    public void getItemOffsets(Rect outRect, View view, RecyclerView parent, RecyclerView.State state) { 
     // only for the last one 
     if (parent.getChildAdapterPosition(view) == parent.getAdapter().getItemCount() - 1) { 
      outRect.top = /* set your margin here */; 
     } 
    } 
} 
+0

Кажется, что это тоже сработает, и это хорошее предложение. Спасибо. – chubbsondubs