当前位置: 首页>>代码示例>>Java>>正文


Java RecyclerView.getLayoutManager方法代码示例

本文整理汇总了Java中android.support.v7.widget.RecyclerView.getLayoutManager方法的典型用法代码示例。如果您正苦于以下问题:Java RecyclerView.getLayoutManager方法的具体用法?Java RecyclerView.getLayoutManager怎么用?Java RecyclerView.getLayoutManager使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在android.support.v7.widget.RecyclerView的用法示例。


在下文中一共展示了RecyclerView.getLayoutManager方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: isTop

import android.support.v7.widget.RecyclerView; //导入方法依赖的package包/类
/**
 * is position align top of recycler view
 * 从当前位置找起,只要找到一个跟自己的spanIndex一样的就说明不是第一行,或者已经查找过的spancount >= spanCount说明不是第一行
 *
 * @param parent
 * @param position
 * @param totalSpanCount
 * @return
 */
private boolean isTop(RecyclerView parent, int position, int totalSpanCount) {
    if (parent.getLayoutManager() instanceof GridLayoutManager) {
        GridLayoutManager.SpanSizeLookup sizeLookup = ((GridLayoutManager) parent.getLayoutManager()).getSpanSizeLookup();
        if (sizeLookup != null) {
            int currentSpanIndex = sizeLookup.getSpanIndex(position, totalSpanCount);
            int lookupedSpanCount = 0;
            for (int i = position - 1; i >= 0; i--) {
                lookupedSpanCount = lookupedSpanCount + sizeLookup.getSpanSize(i);
                if (lookupedSpanCount >= totalSpanCount) {
                    return false;
                }
                if (sizeLookup.getSpanIndex(i, totalSpanCount) == currentSpanIndex) {
                    return false;
                }
            }
            return true;
        }
    } else if (parent.getLayoutManager() instanceof StaggeredGridLayoutManager) {
        return position < totalSpanCount;//staggered 的每一列一个span
    }
    return false;
}
 
开发者ID:alibaba,项目名称:LuaViewPlayground,代码行数:32,代码来源:DividerGridItemDecoration.java

示例2: onAttachedToRecyclerView

import android.support.v7.widget.RecyclerView; //导入方法依赖的package包/类
@Override
public void onAttachedToRecyclerView(RecyclerView recyclerView) {
    mInnerAdapter.onAttachedToRecyclerView(recyclerView);

    LayoutManager layoutManager = recyclerView.getLayoutManager();
    if (layoutManager instanceof GridLayoutManager) {
        final GridLayoutManager gridLayoutManager = (GridLayoutManager) layoutManager;
        final GridLayoutManager.SpanSizeLookup spanSizeLookup = gridLayoutManager.getSpanSizeLookup();

        gridLayoutManager.setSpanSizeLookup(new GridLayoutManager.SpanSizeLookup() {
            @Override
            public int getSpanSize(int position) {
                int viewType = getItemViewType(position);
                if (viewType == TYPE_REFRESH_HEADER) {
                    return gridLayoutManager.getSpanCount();
                } else if (viewType == TYPE_LOADMORE_FOOTER) {
                    return gridLayoutManager.getSpanCount();
                }
                if (spanSizeLookup != null)
                    return spanSizeLookup.getSpanSize(position);
                return 1;
            }
        });
        gridLayoutManager.setSpanCount(gridLayoutManager.getSpanCount());
    }
}
 
开发者ID:BittleDragon,项目名称:RefreshLoadRecyclerview,代码行数:27,代码来源:ExcellentRecyclerview.java

示例3: onAttachedToRecyclerView

import android.support.v7.widget.RecyclerView; //导入方法依赖的package包/类
@Override
public void onAttachedToRecyclerView(final RecyclerView recyclerView) {
    super.onAttachedToRecyclerView(recyclerView);
    RecyclerView.LayoutManager manager = recyclerView.getLayoutManager();
    if (manager instanceof GridLayoutManager) {
        final GridLayoutManager gridManager = ((GridLayoutManager) manager);
        gridManager.setSpanSizeLookup(new GridLayoutManager.SpanSizeLookup() {
            @Override
            public int getSpanSize(int position) {
                int type = getItemViewType(position);
                if (mSpanSizeLookup == null) {
                    return (type == EMPTY_VIEW || type == LOADING_VIEW || type == FETCHING_VIEW) ? gridManager.getSpanCount() : 1;
                } else {
                    return (type == EMPTY_VIEW || type == LOADING_VIEW || type == FETCHING_VIEW) ? gridManager
                            .getSpanCount() : mSpanSizeLookup.getSpanSize(gridManager, position - getFetchMoreViewCount());
                }
            }
        });
    }
}
 
开发者ID:newDeepLearing,项目名称:decoy,代码行数:21,代码来源:BaseFetchLoadAdapter.java

示例4: onScrolled

import android.support.v7.widget.RecyclerView; //导入方法依赖的package包/类
@Override
public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
  LinearLayoutManager layoutManager = (LinearLayoutManager) recyclerView.getLayoutManager();

  int firstVisible = layoutManager.findFirstVisibleItemPosition();
  int visibleCount = Math.abs(firstVisible - layoutManager.findLastVisibleItemPosition());
  int itemCount = recyclerView.getAdapter().getItemCount();

  if (firstVisible != lastFirstVisible || visibleCount != lastVisibleCount
      || itemCount != lastItemCount) {
    scrollListener.onScroll(null, firstVisible, visibleCount, itemCount);
    lastFirstVisible = firstVisible;
    lastVisibleCount = visibleCount;
    lastItemCount = itemCount;
  }
}
 
开发者ID:weiwenqiang,项目名称:GitHub,代码行数:17,代码来源:RecyclerToListViewScrollListener.java

示例5: isLastRaw

import android.support.v7.widget.RecyclerView; //导入方法依赖的package包/类
private boolean isLastRaw(RecyclerView parent, int pos, int spanCount,
                          int childCount) {
    LayoutManager layoutManager = parent.getLayoutManager();
    if (layoutManager instanceof GridLayoutManager) {
        childCount = childCount - childCount % spanCount;
        if (pos >= childCount)// 如果是最后一行,则不需要绘制底部
            return true;
    } else if (layoutManager instanceof StaggeredGridLayoutManager) {
        int orientation = ((StaggeredGridLayoutManager) layoutManager)
                .getOrientation();
        // StaggeredGridLayoutManager 且纵向滚动
        if (orientation == StaggeredGridLayoutManager.VERTICAL) {
            childCount = childCount - childCount % spanCount;
            // 如果是最后一行,则不需要绘制底部
            if (pos >= childCount)
                return true;
            // StaggeredGridLayoutManager 且横向滚动
        } else {
            // 如果是最后一行,则不需要绘制底部
            if ((pos + 1) % spanCount == 0) {
                return true;
            }
        }
    }
    return false;
}
 
开发者ID:zuoni1018,项目名称:CoordinatorLayoutExample-master,代码行数:27,代码来源:DividerGridItemDecoration.java

示例6: RecordPatientRemarkListCustomAdapter

import android.support.v7.widget.RecyclerView; //导入方法依赖的package包/类
public RecordPatientRemarkListCustomAdapter(Context context, ArrayList<Symptom> list, ArrayList<PatientRemark> remarks, RecyclerView recyclerView, OnAdapterSupport listener, AddRemarkFromListActivity activity) {
    this.context = context;
    this.remarks = remarks;
    this.list = list;
    this.onAdapterSupport = listener;
    this.activity = (AddRemarkFromListActivity) activity;

    if (recyclerView.getLayoutManager() instanceof LinearLayoutManager) {
        recyclerView.addOnScrollListener(new ScrollListener() {
            @Override
            public void onHide() {
                hideViews();
            }

            @Override
            public void onShow() {
                showViews();
            }
        });
    }
}
 
开发者ID:pooi,项目名称:Nearby,代码行数:22,代码来源:RecordPatientRemarkListCustomAdapter.java

示例7: onAttachedToRecyclerView

import android.support.v7.widget.RecyclerView; //导入方法依赖的package包/类
@Override
public void onAttachedToRecyclerView(final RecyclerView recyclerView) {
    super.onAttachedToRecyclerView(recyclerView);
    RecyclerView.LayoutManager manager = recyclerView.getLayoutManager();
    if (manager instanceof GridLayoutManager) {
        final GridLayoutManager gridManager = ((GridLayoutManager) manager);
        gridManager.setSpanSizeLookup(new GridLayoutManager.SpanSizeLookup() {
            @Override
            public int getSpanSize(int position) {
                int type = getItemViewType(position);
                if (mSpanSizeLookup == null)
                    return (type == EMPTY_VIEW || type == HEADER_VIEW || type == FOOTER_VIEW || type == LOADING_VIEW) ? gridManager.getSpanCount() : 1;
                else
                    return (type == EMPTY_VIEW || type == HEADER_VIEW || type == FOOTER_VIEW || type == LOADING_VIEW) ? gridManager.getSpanCount() : mSpanSizeLookup.getSpanSize(gridManager, position - getHeaderLayoutCount());
            }
        });
    }
    recyclerView.post(new Runnable() {
        @Override
        public void run() {
            if (mRequestLoadMoreListener != null && pageSize == -1) {
                RecyclerView.LayoutManager layoutManager = recyclerView.getLayoutManager();
                int visibleItemCount = layoutManager.getChildCount();
                Log.e("visibleItemCount", visibleItemCount + "");
                openLoadMore(visibleItemCount);
            }
        }
    });

}
 
开发者ID:weiwenqiang,项目名称:GitHub,代码行数:31,代码来源:BaseQuickAdapter.java

示例8: isLastRow

import android.support.v7.widget.RecyclerView; //导入方法依赖的package包/类
public boolean isLastRow(int itemPosition, RecyclerView parent) {
    RecyclerView.LayoutManager layoutManager = parent.getLayoutManager();
    if (layoutManager instanceof GridLayoutManager) {
        int spanCount = ((GridLayoutManager) layoutManager).getSpanCount();
        int itemCount = parent.getAdapter().getItemCount();
        if ((itemCount - itemPosition - 1) < spanCount)
            return true;
    }
    return false;
}
 
开发者ID:GitLqr,项目名称:MaterialDesignDemo,代码行数:11,代码来源:MyDecorationTwo.java

示例9: isLastRaw

import android.support.v7.widget.RecyclerView; //导入方法依赖的package包/类
private boolean isLastRaw(RecyclerView parent, int pos, int spanCount,
                          int childCount) {
    LayoutManager layoutManager = parent.getLayoutManager();
    if (layoutManager instanceof GridLayoutManager) {
        childCount = childCount - childCount % spanCount;
        if (pos >= childCount)// 如果是最后一行,则不需要绘制底部
            return true;
    } else if (layoutManager instanceof StaggeredGridLayoutManager) {
        int orientation = ((StaggeredGridLayoutManager) layoutManager)
                .getOrientation();
        // StaggeredGridLayoutManager 且纵向滚动
        if (orientation == StaggeredGridLayoutManager.VERTICAL) {
            childCount = childCount - childCount % spanCount;
            // 如果是最后一行,则不需要绘制底部
            if (pos >= childCount)
                return true;
        } else
        // StaggeredGridLayoutManager 且横向滚动
        {
            // 如果是最后一行,则不需要绘制底部
            if ((pos + 1) % spanCount == 0) {
                return true;
            }
        }
    }
    return false;
}
 
开发者ID:yiwent,项目名称:Mobike,代码行数:28,代码来源:DividerGridItemDecoration.java

示例10: onAttachedToRecyclerView

import android.support.v7.widget.RecyclerView; //导入方法依赖的package包/类
@Override
public void onAttachedToRecyclerView(RecyclerView recyclerView) {
    super.onAttachedToRecyclerView(recyclerView);
    RecyclerView.LayoutManager manager = recyclerView.getLayoutManager();
    if (manager instanceof GridLayoutManager) {
        final GridLayoutManager gridManager = ((GridLayoutManager) manager);
        gridManager.setSpanSizeLookup(new GridLayoutManager.SpanSizeLookup() {
            @Override
            public int getSpanSize(int position) {
                return (isHeader(position) || isFooter(position))
                        ? gridManager.getSpanCount() : 1;
            }
        });
    }
}
 
开发者ID:joelan,项目名称:ClouldReader,代码行数:16,代码来源:WrapAdapter.java

示例11: onScrolled

import android.support.v7.widget.RecyclerView; //导入方法依赖的package包/类
@Override
public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
    super.onScrolled(recyclerView, dx, dy);

    final LinearLayoutManager linearLayoutManager = (LinearLayoutManager) recyclerView.getLayoutManager();

    totalItemCount = linearLayoutManager.getItemCount();
    lastVisibleItem = linearLayoutManager.findLastVisibleItemPosition();
    if (!loading && totalItemCount <= (lastVisibleItem + visibleThreshold)) {
        // End has been reached
        // Do something
        loading = true;
        if (onLoadMoreListener != null) {
            onLoadMoreListener.onLoadMore();
        }
    }
    // 여기까지 무한 스크롤

    if (scrolledDistance > HIDE_THRESHOLD && controlsVisible) {
        onHide();
        controlsVisible = false;
        scrolledDistance = 0;
    } else if (scrolledDistance < -HIDE_THRESHOLD && !controlsVisible) {
        onShow();
        controlsVisible = true;
        scrolledDistance = 0;
    }

    if((controlsVisible && dy>0) || (!controlsVisible && dy<0)) {
        scrolledDistance += dy;
    }
    // 여기까지 툴바 숨기기
}
 
开发者ID:pooi,项目名称:Nearby,代码行数:34,代码来源:PatientSymptomListCustomAdapter.java

示例12: attach

import android.support.v7.widget.RecyclerView; //导入方法依赖的package包/类
/**
 * Should be called after recyclerView setup with its layoutManager and adapter
 *
 * @param recyclerView the RecyclerView
 */
public void attach(RecyclerView recyclerView) {
    final LinearLayoutManager layoutManager
        = (LinearLayoutManager) recyclerView.getLayoutManager();
    recyclerView.addOnScrollListener(
        new EndlessScrollListener(layoutManager, loadMoreSubject));
}
 
开发者ID:drakeet,项目名称:rebase-android,代码行数:12,代码来源:LoadMoreDelegate.java

示例13: compatibleWithLayoutManager

import android.support.v7.widget.RecyclerView; //导入方法依赖的package包/类
/**
 * compatible with recyclerview layoutmanager
 *
 * @param parent
 */
private void compatibleWithLayoutManager(RecyclerView parent) {

    if (parent.getLayoutManager() != null) {
        if (parent.getLayoutManager() instanceof GridLayoutManager) {
            mMode = MODE_GRID;
        } else if (parent.getLayoutManager() instanceof LinearLayoutManager) {
            if (((LinearLayoutManager) parent.getLayoutManager()).getOrientation() == LinearLayout.HORIZONTAL) {
                mMode = MODE_VERTICAL;
            } else {
                mMode = MODE_HORIZONTAL;
            }
        }
    }
}
 
开发者ID:z-chu,项目名称:FriendBook,代码行数:20,代码来源:RecyclerViewItemDecoration.java

示例14: fastScrollTo

import android.support.v7.widget.RecyclerView; //导入方法依赖的package包/类
private void fastScrollTo(int amountAxis, RecyclerView recyclerView, int offset, boolean hasHeader) {
    int position = 0, width = normalCellWidth;
    if (amountAxis >= offset && hasHeader) {
        amountAxis -= offset;
        position++;
    }
    position += amountAxis / width;
    amountAxis %= width;
    LinearLayoutManager linearLayoutManager = (LinearLayoutManager) recyclerView.getLayoutManager();
    //call this method the OnScrollListener's onScrolled will be called,but dx and dy always be zero.
    linearLayoutManager.scrollToPositionWithOffset(position, -amountAxis);
}
 
开发者ID:zhouchaoyuan,项目名称:excelPanel,代码行数:13,代码来源:ExcelPanel.java

示例15: getSpanCount

import android.support.v7.widget.RecyclerView; //导入方法依赖的package包/类
private int getSpanCount(RecyclerView parent) {
    // 列数
    int spanCount = -1;
    RecyclerView.LayoutManager layoutManager = parent.getLayoutManager();
    if (layoutManager instanceof GridLayoutManager) {

        spanCount = ((GridLayoutManager) layoutManager).getSpanCount();
    } else if (layoutManager instanceof StaggeredGridLayoutManager) {
        spanCount = ((StaggeredGridLayoutManager) layoutManager)
                .getSpanCount();
    }
    return spanCount;
}
 
开发者ID:ynztlxdeai,项目名称:TextReader,代码行数:14,代码来源:SupportGridItemDecoration.java


注:本文中的android.support.v7.widget.RecyclerView.getLayoutManager方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。