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


Java GridLayoutManager.getSpanSizeLookup方法代码示例

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


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

示例1: onAttachedToRecyclerView

import android.support.v7.widget.GridLayoutManager; //导入方法依赖的package包/类
public static void onAttachedToRecyclerView(RecyclerView.Adapter innerAdapter, RecyclerView recyclerView, final SpanSizeCallback callback)
{
    innerAdapter.onAttachedToRecyclerView(recyclerView);

    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)
            {
                return callback.getSpanSize(gridLayoutManager, spanSizeLookup, position);
            }
        });
        gridLayoutManager.setSpanCount(gridLayoutManager.getSpanCount());
    }
}
 
开发者ID:weiwenqiang,项目名称:GitHub,代码行数:22,代码来源:WrapperUtils.java

示例2: getLastDividerOffset

import android.support.v7.widget.GridLayoutManager; //导入方法依赖的package包/类
/**
 * In the case mShowLastDivider = false,
 * Returns offset for how many views we don't have to draw a divider for,
 * for LinearLayoutManager it is as simple as not drawing the last child divider,
 * but for a GridLayoutManager it needs to take the span count for the last items into account
 * until we use the span count configured for the grid.
 *
 * @param parent RecyclerView
 * @return offset for how many views we don't have to draw a divider or 1 if its a
 * LinearLayoutManager
 */
private int getLastDividerOffset(RecyclerView parent) {
    if (parent.getLayoutManager() instanceof GridLayoutManager) {
        GridLayoutManager layoutManager = (GridLayoutManager) parent.getLayoutManager();
        GridLayoutManager.SpanSizeLookup spanSizeLookup = layoutManager.getSpanSizeLookup();
        int spanCount = layoutManager.getSpanCount();
        int itemCount = parent.getAdapter().getItemCount();
        for (int i = itemCount - 1; i >= 0; i--) {
            if (spanSizeLookup.getSpanIndex(i, spanCount) == 0) {
                return itemCount - i;
            }
        }
    }

    return 1;
}
 
开发者ID:weiwenqiang,项目名称:GitHub,代码行数:27,代码来源:FlexibleDividerDecoration.java

示例3: onAttachedToRecyclerView

import android.support.v7.widget.GridLayoutManager; //导入方法依赖的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

示例4: onAttachedToRecyclerView

import android.support.v7.widget.GridLayoutManager; //导入方法依赖的package包/类
public static void onAttachedToRecyclerView(RecyclerView.Adapter innerAdapter, RecyclerView recyclerView, final SpanSizeCallback callback) {
    innerAdapter.onAttachedToRecyclerView(recyclerView);

    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) {
                return callback.getSpanSize(gridLayoutManager, spanSizeLookup, position);
            }
        });
        gridLayoutManager.setSpanCount(gridLayoutManager.getSpanCount());
    }
}
 
开发者ID:guzhigang001,项目名称:Bailan,代码行数:18,代码来源:WrapperUtils.java

示例5: onAttachedToRecyclerView

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

    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 (mHeaderViews.get(viewType) != null) {
                    return gridLayoutManager.getSpanCount();
                } else if (mFooterViews.get(viewType) != null) {
                    return gridLayoutManager.getSpanCount();
                }
                if (spanSizeLookup != null)
                    return spanSizeLookup.getSpanSize(position);
                return 1;
            }
        });
        gridLayoutManager.setSpanCount(gridLayoutManager.getSpanCount());
    }
}
 
开发者ID:BittleDragon,项目名称:MyRepository,代码行数:27,代码来源:MultiFunctionalWrapper.java

示例6: getTotalSpanSizeByPosition

import android.support.v7.widget.GridLayoutManager; //导入方法依赖的package包/类
/**
 * Gets the total number of spans by the position
 *
 * @param manager  The GridLayoutManager
 * @param position The position of Item
 * @return
 */
private int getTotalSpanSizeByPosition(GridLayoutManager manager, int position) {
    int spanTotalSize = 0;
    GridLayoutManager.SpanSizeLookup lookup = manager.getSpanSizeLookup();
    int spanCount = manager.getSpanCount();
    for (int i = 0; i <= position; i++) {
        int spanLookup = lookup.getSpanSize(i);
        spanTotalSize = spanTotalSize + spanLookup;
        if (spanTotalSize >= spanCount) {
            if (spanTotalSize % spanCount != 0) {
                spanTotalSize = spanLookup;
            } else {
                if (spanTotalSize > spanCount) {
                    if (spanTotalSize % spanCount != 0)
                        spanTotalSize = spanTotalSize % spanCount;
                    else
                        spanTotalSize = spanCount;
                }
            }
        }
    }
    return spanTotalSize;
}
 
开发者ID:dkzwm,项目名称:ItemDecorations,代码行数:30,代码来源:GridItemDecoration.java

示例7: onAttachedToRecyclerView

import android.support.v7.widget.GridLayoutManager; //导入方法依赖的package包/类
public static void onAttachedToRecyclerView(RecyclerView recyclerView, final RecyclerView.Adapter adapter, final int pinnedHeaderType) {
    // 如果是网格布局,这里处理标签的布局占满一行
    final RecyclerView.LayoutManager layoutManager = recyclerView.getLayoutManager();
    if (layoutManager instanceof GridLayoutManager) {
        final GridLayoutManager gridLayoutManager = (GridLayoutManager) layoutManager;
        final GridLayoutManager.SpanSizeLookup oldSizeLookup = gridLayoutManager.getSpanSizeLookup();
        gridLayoutManager.setSpanSizeLookup(new GridLayoutManager.SpanSizeLookup() {
            @Override
            public int getSpanSize(int position) {
                if (adapter.getItemViewType(position) == pinnedHeaderType) {
                    return gridLayoutManager.getSpanCount();
                }
                if (oldSizeLookup != null) {
                    return oldSizeLookup.getSpanSize(position);
                }
                return 1;
            }
        });
    }
}
 
开发者ID:yedashen,项目名称:UltimateRecyclerView,代码行数:21,代码来源:FullSpanUtil.java

示例8: inspectLayoutManager

import android.support.v7.widget.GridLayoutManager; //导入方法依赖的package包/类
private void inspectLayoutManager(LayoutManager layoutManager) {
    if (layoutManager instanceof GridLayoutManager) {
        GridLayoutManager gridLayoutManager = (GridLayoutManager) layoutManager;
        GridLayoutManager.SpanSizeLookup spanSizeLookup = gridLayoutManager.getSpanSizeLookup();
        FixedViewSpanSizeLookup fixedViewSpanSizeLookup = null;
        if (spanSizeLookup == null || spanSizeLookup instanceof GridLayoutManager.DefaultSpanSizeLookup) {
            fixedViewSpanSizeLookup = new FixedViewSpanSizeLookup();
            gridLayoutManager.setSpanSizeLookup(fixedViewSpanSizeLookup);
        } else if (spanSizeLookup instanceof FixedViewSpanSizeLookup) {
            fixedViewSpanSizeLookup = (FixedViewSpanSizeLookup) spanSizeLookup;
        }
        if (fixedViewSpanSizeLookup != null) {
            fixedViewSpanSizeLookup.attach(gridLayoutManager, proxyAdapter);
        }
    }
}
 
开发者ID:TakWolf,项目名称:Android-HeaderAndFooterRecyclerView,代码行数:17,代码来源:HeaderAndFooterRecyclerView.java

示例9: onAttachedToRecyclerView

import android.support.v7.widget.GridLayoutManager; //导入方法依赖的package包/类
public static void onAttachedToRecyclerView(RecyclerView.Adapter innerAdapter, RecyclerView
        recyclerView, final SpanSizeCallback callback) {
    innerAdapter.onAttachedToRecyclerView(recyclerView);

    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) {
                return callback.getSpanSize(gridLayoutManager, spanSizeLookup, position);
            }
        });
        gridLayoutManager.setSpanCount(gridLayoutManager.getSpanCount());
    }
}
 
开发者ID:zuoni1018,项目名称:CoordinatorLayoutExample-master,代码行数:20,代码来源:WrapperUtils.java

示例10: getGroupIndex

import android.support.v7.widget.GridLayoutManager; //导入方法依赖的package包/类
/**
 * Returns a group index for GridLayoutManager.
 * for LinearLayoutManager, always returns position.
 *
 * @param position current view position to draw divider
 * @param parent   RecyclerView
 * @return group index of items
 */
private int getGroupIndex(int position, RecyclerView parent) {
    if (parent.getLayoutManager() instanceof GridLayoutManager) {
        GridLayoutManager layoutManager = (GridLayoutManager) parent.getLayoutManager();
        GridLayoutManager.SpanSizeLookup spanSizeLookup = layoutManager.getSpanSizeLookup();
        int spanCount = layoutManager.getSpanCount();
        return spanSizeLookup.getSpanGroupIndex(position, spanCount);
    }

    return position;
}
 
开发者ID:weiwenqiang,项目名称:GitHub,代码行数:19,代码来源:FlexibleDividerDecoration.java

示例11: onAttachedToRecyclerView

import android.support.v7.widget.GridLayoutManager; //导入方法依赖的package包/类
@Override
public void onAttachedToRecyclerView(RecyclerView recyclerView) {
    mInnerAdapter.onAttachedToRecyclerView(recyclerView);
    //为了兼容GridLayout
    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 (mHeaderViews.get(viewType) != null) {
                    return gridLayoutManager.getSpanCount();
                } else if (mFooterViews.get(viewType) != null) {
                    return gridLayoutManager.getSpanCount();
                }
                if (spanSizeLookup != null)
                    return spanSizeLookup.getSpanSize(position);
                return 1;
            }
        });
        gridLayoutManager.setSpanCount(gridLayoutManager.getSpanCount());
    }

}
 
开发者ID:GuoZhaoHui628,项目名称:SliderStatusBar,代码行数:28,代码来源:HeaderAndFooterWrapperAdapter.java

示例12: wasDividerAlreadyDrawn

import android.support.v7.widget.GridLayoutManager; //导入方法依赖的package包/类
/**
 * Determines whether divider was already drawn for the row the item is in,
 * effectively only makes sense for a grid
 *
 * @param position current view position to draw divider
 * @param parent   RecyclerView
 * @return true if the divider can be skipped as it is in the same row as the previous one.
 */
private boolean wasDividerAlreadyDrawn(int position, RecyclerView parent) {
    if (parent.getLayoutManager() instanceof GridLayoutManager) {
        GridLayoutManager layoutManager = (GridLayoutManager) parent.getLayoutManager();
        GridLayoutManager.SpanSizeLookup spanSizeLookup = layoutManager.getSpanSizeLookup();
        int spanCount = layoutManager.getSpanCount();
        return spanSizeLookup.getSpanIndex(position, spanCount) > 0;
    }

    return false;
}
 
开发者ID:Loofer,项目名称:Watermark,代码行数:19,代码来源:FlexibleDividerDecoration.java

示例13: recoverLayoutManager

import android.support.v7.widget.GridLayoutManager; //导入方法依赖的package包/类
private void recoverLayoutManager(LayoutManager layoutManager) {
    if (layoutManager instanceof GridLayoutManager) {
        GridLayoutManager gridLayoutManager = (GridLayoutManager) layoutManager;
        GridLayoutManager.SpanSizeLookup spanSizeLookup = gridLayoutManager.getSpanSizeLookup();
        if (spanSizeLookup instanceof FixedViewSpanSizeLookup) {
            gridLayoutManager.setSpanSizeLookup(new GridLayoutManager.DefaultSpanSizeLookup());
            ((FixedViewSpanSizeLookup) spanSizeLookup).detach();
        }
    }
}
 
开发者ID:TakWolf,项目名称:Android-HeaderAndFooterRecyclerView,代码行数:11,代码来源:HeaderAndFooterRecyclerView.java


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