我需要在开始时使用粘贴标题覆盖,在水平回收视图中使用项目。
为了获得结果,我尝试在项目内部进行文本查看,并隐藏/取消隐藏标题。这项工作对标题很好,但不能使它变得粘稠。
现在使用https://github.com/fabionuno/Timehop.StickyHeadersRecyclerView
我已更改StickyRecyclerHeadersDecoration
课程,我正在获得以下结果
public class StickyRecyclerHeadersDecoration extends RecyclerView.ItemDecoration {
private final StickyRecyclerHeadersAdapter mAdapter;
private final ItemVisibilityAdapter mVisibilityAdapter;
private final SparseArray<Rect> mHeaderRects = new SparseArray<>();
private final HeaderProvider mHeaderProvider;
private final OrientationProvider mOrientationProvider;
private final HeaderPositionCalculator mHeaderPositionCalculator;
private final HeaderRenderer mRenderer;
private final DimensionCalculator mDimensionCalculator;
...
/**
* Sets the offsets for the first item in a section to make room for the header view
*
* @param itemOffsets rectangle to define offsets for the item
* @param header view used to calculate offset for the item
* @param orientation used to calculate offset for the item
*/
private void setItemOffsetsForHeader(Rect itemOffsets, View header, int orientation) {
mDimensionCalculator.initMargins(mTempRect, header);
if (orientation == LinearLayoutManager.VERTICAL) {
mTempRect.top = -header.getHeight();
itemOffsets.top = 0;
itemOffsets.bottom = 1;
// itemOffsets.top = header.getHeight() + mTempRect.top + mTempRect.bottom;
// itemOffsets.top = 0;
} else {
mTempRect.left = -header.getWidth();
itemOffsets.left = 0;
itemOffsets.right = 1;
// itemOffsets.left = header.getWidth() + mTempRect.left + mTempRect.right;
// itemOffsets.left = 0;
}
}
...
}
正如您从两个快照中发现的那样,我的StickyRecyclerHeadersDecoration
绘图存在问题。标题'C'应该结束并开始'Caiman'项目
我该如何解决这个问题。 参考符合我的应用程序设计要求的任何其他库也可以。
由于
注意:我会从我的应用程序的标题背景中删除那半透明的蓝色。