2016-08-18 4 views
0

RecyclerView의 두 요소 사이에 구분선을 추가해야하지만 두 요소 사이에는 구분선을 추가 할 필요가 없습니다.두 요소 사이의 Android RecyclerView 분배 자

좋아요, 제가 더 잘 설명해 드리겠습니다. 두 개의 요소 그룹이 있으며 그 사이에 일종의 맞춤 분할자를 만들어야합니다. enter image description here

어떻게하면 가장 효과적으로 최적화 할 수 있습니까? ItemLayout을 변경하고 스플리터를 추가 할 생각이 있지만이 옵션이 충분히 빠를 것이라고는 생각하지 않습니다.

+0

안녕하세요, 어댑터가 이미 두 가지 유형의 항목 (빨간색과 파란색 그림)을 처리합니까? –

+0

글쎄요, 그렇습니다. 아니요, 저는 멀티 타입 레이아웃을 사용합니다. 그러나 이런 방식으로는 사용하지 않습니다. 예를 들어 두 가지 레이아웃이 있습니다 Apple and Pear, 빨간색은 사과와 배, 파란색은 과일을 먹었습니다. –

답변

0

내 가정은 이미 파란색과 빨간색 항목에 다른 itemviewtype을 사용하고있는 것입니다. 나는 당신의 디바이더를 위해 다른 itemviewtype을 생성하고, 데이터리스트에 더미 객체를 추가하고, instanceof을 가진 현재 위치에 그런 객체가 있다면, RecyclerView.Adapter.onCreateViewHolder을 체크 할 것을 권한다. 그런 다음 원하는 구분선 레이아웃이있는 뷰 소유자를 반환하십시오.

viewtypes에 대한 자습서는 How to create RecyclerView with multiple view type?에서 찾을 수 있습니다.

0

단수 형 스플리터에 대한 추가 유형의 레이아웃을 사용하는 것이 좋은 선택이라고 생각합니다. 당신이 그때 당신을 진정 것, 성능에 대해 경고하는 경우, 그 어떤 성능 문제를 아무 것 (예를 들어, 회색 선) 일부 정적 텍스트 나 간단한 당김과 간단한 레이아웃을해야합니다

  • . 이러한 레이아웃을 만드는 데 몇 밀리 초 또는 그보다 적게 걸리고 바인딩 시간이 훨씬 단축됩니다.
  • 리사이클 뷰는 각 유형의 항목에 대해 고유 한 캐시를 가지고 있으므로 스플리터는) 만든 후 다음 바인딩을 위해 캐싱
  • ListViews 섹션을 제공하는 라이브러리를 살펴 본 다음이 접근법도 사용한다는 것을 알 수 있습니다 (기본 유형 및 스플리터 - type-items 또는 section-type-items)

물론 ItemDecoration을 사용할 수 있지만 모두 처리해야합니다. 당신은 자식 위치를 결정하고 결정할 필요가 있습니다, 당신은 쪼개는 도구를 그릴 필요가 있습니다. 그리고 그것은 더 고통 스럽습니다.