ItemIndex.java 2.3 KB

/*
 * Copyright (c) People Technologies Co., Ltd. 2019-2022. All rights reserved.
 */

package com.wd.display.comp.layoutmanager;

/**
 * ItemIndex
 * 
 * @author lvinhui
 */
public class ItemIndex {

    /**
     * item 所在的Group在RecyclerView中的绝对位置
     */
    private int groupIndex = -1;

    /**
     * item 所在section在group中的相对位置
     */
    private int sectionIndex = -1;

    /**
     * Group中的section数量
     */
    private int itemCount = -1;

    private int itemIndex;

    /**
     * gzq
     * 
     * @param groupIndex
     * @param sectionIndex
     * @param itemIndex
     * @param itemCount
     */
    public ItemIndex(int groupIndex, int sectionIndex, int itemIndex, int itemCount) {
        this.groupIndex = groupIndex;
        this.sectionIndex = sectionIndex;
        this.itemCount = itemCount;
        this.itemIndex = itemIndex;
    }

    /**
     * gzq
     * 
     * @param groupIndex
     * @param sectionIndex
     * @param itemCount
     */
    public ItemIndex(int groupIndex, int sectionIndex, int itemCount) {
        this.groupIndex = groupIndex;
        this.sectionIndex = sectionIndex;
        this.itemCount = itemCount;
    }

    public int getGroupIndex() {
        return groupIndex;
    }

    public void setGroupIndex(int groupIndex) {
        this.groupIndex = groupIndex;
    }

    public int getSectionIndex() {
        return sectionIndex;
    }

    public void setSectionIndex(int sectionIndex) {
        this.sectionIndex = sectionIndex;
    }

    public int getItemCount() {
        return itemCount;
    }

    public void setItemCount(int itemCount) {
        this.itemCount = itemCount;
    }

    public int getLastItemPosition() {
        return groupIndex + sectionIndex + itemCount;
    }

    /**
     * 根据Item在RecyclerView中的adapter position({@code position})计算出改item在section中的位置.
     *
     * @param position 在recyclerView中的绝对Adapter位置
     * @return item在comp中的索引,若超出comp的范围则返回负数
     */
    public int getPositionInSection(int position) {
        // final int itemIndex = position - groupIndex - sectionIndex;
        // if (itemIndex >= itemCount) {
        // return -1;
        // }
        //
        // return itemIndex;
        return this.itemIndex;
    }
}