다른 열/행 크기 그리드 구현하는 방법 :안드로이드 :이 같은 것을 구현해야
이 StaggeredGridLayoutManager 것 같다 일 | GridLayoutManager가 그것을 수행 할 수 없습니다. 지금 어떻게 구현합니까?
GridView의 성능이 우수할까요?
다른 열/행 크기 그리드 구현하는 방법 :안드로이드 :이 같은 것을 구현해야
이 StaggeredGridLayoutManager 것 같다 일 | GridLayoutManager가 그것을 수행 할 수 없습니다. 지금 어떻게 구현합니까?
GridView의 성능이 우수할까요?
내가이 LIB의 1.0.0-SNAPSHOT 버전을 테스트 twoway-view
와 RecyclerView 행동의이 종류를 달성 할 수있다.
오래된 프로젝트 (더 이상 유지 관리하지 않음)이지만 개인 RecyclerView/LayoutManager를 작성하는 데 도움이 될 수 있습니다. 레이아웃의
예 RecyclerViewAdapter에서
당신은 스팬 로직을 설정해야합니다
<org.lucasr.twowayview.widget.TwoWayView
android:id="@+id/fragment_drawer_list"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginBottom="60dp"
android:clipToPadding="false"
android:paddingBottom="32dp"
app:twowayview_layoutManager="SpannableGridLayoutManager"
app:twowayview_numColumns="3"
app:twowayview_numRows="3" />
결과 스크린 샷 : 나는 도서관 (TwoWayView)에서 사용자 정의 RecyclerView을 사용
@Override
public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
super.onBindViewHolder(holder, position);
final SpannableGridLayoutManager.LayoutParams lp =
(SpannableGridLayoutManager.LayoutParams) holder.itemView.getLayoutParams();
final int span1;
final int span2;
if (position == 0) {
span1 = 2;
span2 = 2;
} else if (position == 3) {
span1 = 2;
span2 = 3;
} else {
span1 = 1;
span2 = 1;
}
final int colSpan = (span2);
final int rowSpan = (span1);
if (lp.rowSpan != rowSpan || lp.colSpan != colSpan) {
lp.rowSpan = rowSpan;
lp.colSpan = colSpan;
holder.itemView.setLayoutParams(lp);
}
}
:
양방향 라이브러리가 사용되지 않으므로 GridLayoutManager를 찾을 수 있습니다. 사용할 수있는 클래스는 GridLayoutManager.SpanSizeLookup
있습니다. 이 링크보기 http://android-er.blogspot.in/2015/07/set-spansizelookup-to-gridlayoutmanager.html