2017-03-06 9 views
1

내가 한 줄에 변수 열 수를 가진 GridLayoutManager, 이런 식으로 뭔가있는 RecyclerView를 구축하기 위해 노력하고있어 당 계산 같은 행에있는 항목은 항상 화면 너비가됩니다.GridLayoutManager은 행

항목 목록을 다시 정리하고 행 목록별로 그룹화 한 다음 행당 LinearLayout을 부풀려했습니다. 그것은 아주 잘 작동하지 않았다.

그래서 나는 갇혀 있고 아이디어가 없습니다. 어떤 도움도 정말 감사 할 것입니다.

답변

2

GridLayoutManager를 사용할 수 있습니다. 행 수가 다른 열 수를 사용하려면 setSpanSizeLookup을 무시해야합니다.

예 : 난 그냥 보여 위

//spanCount = 3 (just for example) 
GridLayoutManager gridLayoutManager = new GridLayoutManager(getAppContext(), spanCount); 
gridLayoutManager.setSpanSizeLookup(new GridLayoutManager.SpanSizeLookup() { 
    @Override 
    public int getSpanSize(int position) { 
     //define span size for this position 
     //some example for your first three items 
     if(position == item1) { 
      return 1; //item will take 1/3 space of row 
     } else if(position == item2) { 
      return 2; //you will have 2/3 space of row 
     } else if(position == item3) { 
      return 3; //you will have full row size item 
     } 
    } 
}); 

I 코드 샘플 당신이 항목의 크기를 변경할 수 있습니다. 주의하시기 바랍니다 spanSize < = spanCount.

+0

문제는 spanCount가 행마다 가변적이지만 어쨌든 고마워요! 나는 spanCount로 12를 사용하고 너비를 조정하기 위해 계산을했다. Usin 12, 행 당 1, 2, 3, 4 요소로 잘 작동합니다. 예를 들어 5는 아니지만 일반적인 경우가 아닙니다. – moyo

+0

@moyo 예, 어떤 방식 으로든 계산해야합니다. :) –