com.alibaba.android.vlayout.LayoutHelper Java Examples

The following examples show how to use com.alibaba.android.vlayout.LayoutHelper. You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example #1
Source File: FloatCard.java    From Tangram-Android with MIT License 6 votes vote down vote up
@Nullable
@Override
public LayoutHelper convertLayoutHelper(@Nullable LayoutHelper oldHelper) {
    FloatLayoutHelper helper;
    if (oldHelper instanceof FloatLayoutHelper) {
        helper = (FloatLayoutHelper) oldHelper;
    } else {
        helper = new FloatLayoutHelper();
    }

    helper.setItemCount(mCells.size());


    if (style instanceof FixStyle) {
        FixStyle fixStyle = (FixStyle) style;

        helper.setAlignType(fixStyle.alignType);
        helper.setDefaultLocation(fixStyle.x, fixStyle.y);
    }

    return helper;
}
 
Example #2
Source File: FixLinearScrollCard.java    From Tangram-Android with MIT License 6 votes vote down vote up
@Nullable
@Override
public LayoutHelper convertLayoutHelper(LayoutHelper oldHelper) {
    ScrollFixLayoutHelper scrollFixHelper;
    if (oldHelper instanceof ScrollFixLayoutHelper) {
        scrollFixHelper = (ScrollFixLayoutHelper) oldHelper;
    } else {
        scrollFixHelper = new ScrollFixLayoutHelper(0, 0);
    }

    if (mFixStyle != null) {
        scrollFixHelper.setAspectRatio(mFixStyle.aspectRatio);
        scrollFixHelper.setAlignType(mFixStyle.alignType);
        scrollFixHelper.setShowType(mFixStyle.showType);
        scrollFixHelper.setSketchMeasure(mFixStyle.sketchMeasure);
        scrollFixHelper.setX(mFixStyle.x);
        scrollFixHelper.setY(mFixStyle.y);
    }

    return scrollFixHelper;
}
 
Example #3
Source File: GroupBasicAdapter.java    From Tangram-Android with MIT License 6 votes vote down vote up
/**
 * @param cards   new cards data
 * @param silence true, call {@link RecyclerView.Adapter#notifyDataSetChanged()}; false do not call{@link RecyclerView.Adapter#notifyDataSetChanged()}
 */
public void setData(@Nullable List<L> cards, boolean silence) {
    createSnapshot();

    mCards.clear();
    mData.clear();


    if (cards != null && cards.size() != 0) {
        mCards.ensureCapacity(cards.size());
        setLayoutHelpers(transformCards(cards, mData, mCards));
    } else {
        setLayoutHelpers(Collections.<LayoutHelper>emptyList());
    }

    diffWithSnapshot();

    if (!silence)
        notifyDataSetChanged();
}
 
Example #4
Source File: TangramEngine.java    From Tangram-Android with MIT License 6 votes vote down vote up
/**
 * Replace card one by one. New one's children size should be equal with old one's children size.
 *
 * @param oldOne
 * @param newOne
 * @since 2.1.0
 */
public void replace(Card oldOne, Card newOne) {
    VirtualLayoutManager layoutManager = getLayoutManager();
    if (oldOne != null && newOne != null && mGroupBasicAdapter != null && layoutManager != null) {
        List<LayoutHelper> layoutHelpers = layoutManager.getLayoutHelpers();
        int cardIdx = mGroupBasicAdapter.findCardIdxForCard(oldOne);
        if (layoutHelpers != null && cardIdx >= 0 && cardIdx < layoutHelpers.size()) {
            final List<LayoutHelper> newLayoutHelpers = new LinkedList<>();
            for (int i = 0, size = layoutHelpers.size(); i < size; i++) {
                LayoutHelper layoutHelper = layoutHelpers.get(i);
                if (i == cardIdx) {
                    layoutHelper = newOne.getLayoutHelper();
                }
                newLayoutHelpers.add(layoutHelper);
            }
            layoutManager.setLayoutHelpers(newLayoutHelpers);
            mGroupBasicAdapter.replaceComponent(oldOne, newOne);
        }
    }
}
 
Example #5
Source File: GroupBasicAdapter.java    From Tangram-Android with MIT License 6 votes vote down vote up
/**
 * @param cards   new cards data
 * @param silence true, call {@link RecyclerView.Adapter#notifyDataSetChanged()}; false do not call{@link RecyclerView.Adapter#notifyDataSetChanged()}
 */
public void setData(@Nullable List<L> cards, boolean silence) {
    createSnapshot();

    mCards.clear();
    mData.clear();


    if (cards != null && cards.size() != 0) {
        mCards.ensureCapacity(cards.size());
        setLayoutHelpers(transformCards(cards, mData, mCards));
    } else {
        setLayoutHelpers(Collections.<LayoutHelper>emptyList());
    }

    diffWithSnapshot();

    if (!silence)
        notifyDataSetChanged();
}
 
Example #6
Source File: FloatCard.java    From Tangram-Android with MIT License 6 votes vote down vote up
@Nullable
@Override
public LayoutHelper convertLayoutHelper(@Nullable LayoutHelper oldHelper) {
    FloatLayoutHelper helper;
    if (oldHelper instanceof FloatLayoutHelper) {
        helper = (FloatLayoutHelper) oldHelper;
    } else {
        helper = new FloatLayoutHelper();
    }

    helper.setItemCount(mCells.size());


    if (style instanceof FixStyle) {
        FixStyle fixStyle = (FixStyle) style;

        helper.setAlignType(fixStyle.alignType);
        helper.setDefaultLocation(fixStyle.x, fixStyle.y);
    }

    return helper;
}
 
Example #7
Source File: TangramEngine.java    From Tangram-Android with MIT License 6 votes vote down vote up
/**
 * Replace card one by one. New one's children size should be equal with old one's children size.
 * @param oldOne
 * @param newOne
 * @since 2.1.0
 */
public void replace(Card oldOne, Card newOne) {
    VirtualLayoutManager layoutManager = getLayoutManager();
    if (oldOne != null && newOne != null && mGroupBasicAdapter != null && layoutManager != null) {
        List<LayoutHelper> layoutHelpers = layoutManager.getLayoutHelpers();
        int cardIdx = mGroupBasicAdapter.findCardIdxForCard(oldOne);
        if (layoutHelpers != null && cardIdx >= 0 && cardIdx < layoutHelpers.size()) {
            final List<LayoutHelper> newLayoutHelpers = new LinkedList<>();
            for (int i = 0, size = layoutHelpers.size(); i < size; i++) {
                LayoutHelper layoutHelper = layoutHelpers.get(i);
                if (i == cardIdx) {
                    layoutHelper = newOne.getLayoutHelper();
                }
                newLayoutHelpers.add(layoutHelper);
            }
            layoutManager.setLayoutHelpers(newLayoutHelpers);
            mGroupBasicAdapter.replaceComponent(oldOne, newOne);
        }
    }
}
 
Example #8
Source File: TangramEngine.java    From Tangram-Android with MIT License 6 votes vote down vote up
/**
 * @param insertIdx the index to be inserted
 * @param groups    a group list
 * @since 2.1.0
 */
public void insertBatchWith(int insertIdx, List<Card> groups) {
    VirtualLayoutManager layoutManager = getLayoutManager();
    if (groups != null && groups.size() > 0 && mGroupBasicAdapter != null && layoutManager != null) {
        List<LayoutHelper> layoutHelpers = layoutManager.getLayoutHelpers();
        final List<LayoutHelper> newLayoutHelpers = new ArrayList<>(layoutHelpers);
        List<LayoutHelper> insertedLayoutHelpers = new ArrayList<>();
        for (int i = 0, size = groups.size(); i < size; i++) {
            insertedLayoutHelpers.add(groups.get(i).getLayoutHelper());
        }
        if (insertIdx >= layoutHelpers.size()) {
            newLayoutHelpers.addAll(insertedLayoutHelpers);
        } else {
            newLayoutHelpers.addAll(insertIdx, insertedLayoutHelpers);
        }
        layoutManager.setLayoutHelpers(newLayoutHelpers);
        mGroupBasicAdapter.insertBatchComponents(insertIdx, groups);
    }
}
 
Example #9
Source File: TangramEngine.java    From Tangram-Android with MIT License 6 votes vote down vote up
/**
 * @param insertIdx the index to be inserted
 * @param groups a group list
 * @since 2.1.0
 */
public void insertBatchWith(int insertIdx, List<Card> groups) {
    VirtualLayoutManager layoutManager = getLayoutManager();
    if (groups != null && groups.size() > 0 && mGroupBasicAdapter != null && layoutManager != null) {
        List<LayoutHelper> layoutHelpers = layoutManager.getLayoutHelpers();
        final List<LayoutHelper> newLayoutHelpers = new ArrayList<>(layoutHelpers);
        List<LayoutHelper> insertedLayoutHelpers = new ArrayList<>();
        for (int i = 0, size = groups.size(); i < size; i++) {
            insertedLayoutHelpers.add(groups.get(i).getLayoutHelper());
        }
        if (insertIdx >= layoutHelpers.size()) {
            newLayoutHelpers.addAll(insertedLayoutHelpers);
        } else {
            newLayoutHelpers.addAll(insertIdx, insertedLayoutHelpers);
        }
        layoutManager.setLayoutHelpers(newLayoutHelpers);
        mGroupBasicAdapter.insertBatchComponents(insertIdx, groups);
    }
}
 
Example #10
Source File: StickyLayoutHelper.java    From vlayout with MIT License 6 votes vote down vote up
/**
 *
 * get extra top offset when there are multi-sticky views at the top of current view
 * in order to avoid views overlap
 * the offset value is equal to total sticky views' height.
 * @param helper
 */
private int getExtraTopOffset(LayoutManagerHelper helper) {
    if (mStackable == null || !mStackable.enable()) {
        return 0;
    }

    int offset = 0;
    if (helper instanceof VirtualLayoutManager){
        List<LayoutHelper> helperList = ((VirtualLayoutManager) helper).getLayoutHelpers();
        for (LayoutHelper helperItem : helperList) {
            if (helperItem.isFixLayout()) {
                if (helperItem.getRange().getUpper() < this.getRange().getLower()) {
                    View view = helperItem.getFixedView();
                    if (view != null) {
                        offset += view.getHeight();
                    }
                }
            }
        }

    }

    return offset;
}
 
Example #11
Source File: PojoGroupBasicAdapter.java    From Tangram-Android with MIT License 6 votes vote down vote up
@NonNull
@Override
protected List<LayoutHelper> transformCards(@Nullable List<Card> cards, @NonNull List<BaseCell> data, @NonNull List<Pair<Range<Integer>, Card>> rangeCards) {
    if (cards == null) {
        return super.transformCards(cards, data, rangeCards);
    }

    /* record card id, used in {@link #getItems} to clean "forLabel" cards */
    for (Card card : cards) {
        if (!TextUtils.isEmpty(card.id)) {
            mIdCardCache.put(card.id, card);
        }
    }

    List<LayoutHelper> layoutHelpers = super.transformCards(cards, data, rangeCards);

    // clean cache after used
    mIdCardCache.clear();

    return layoutHelpers;
}
 
Example #12
Source File: PojoGroupBasicAdapter.java    From Tangram-Android with MIT License 6 votes vote down vote up
@NonNull
@Override
protected List<LayoutHelper> transformCards(@Nullable List<Card> cards, @NonNull List<BaseCell> data, @NonNull List<Pair<Range<Integer>, Card>> rangeCards) {
    if (cards == null) {
        return super.transformCards(cards, data, rangeCards);
    }

    /* record card id, used in {@link #getItems} to clean "forLabel" cards */
    for (Card card : cards) {
        if (!TextUtils.isEmpty(card.id)) {
            mIdCardCache.put(card.id, card);
        }
    }

    List<LayoutHelper> layoutHelpers = super.transformCards(cards, data, rangeCards);

    // clean cache after used
    mIdCardCache.clear();

    return layoutHelpers;
}
 
Example #13
Source File: StaggeredCard.java    From Tangram-Android with MIT License 6 votes vote down vote up
@Nullable
@Override
public LayoutHelper convertLayoutHelper(@Nullable LayoutHelper oldHelper) {
    StaggeredGridLayoutHelper helper = null;
    if (oldHelper instanceof StaggeredGridLayoutHelper) {
        helper = (StaggeredGridLayoutHelper) oldHelper;
    } else {
        helper = new StaggeredGridLayoutHelper();
    }

    if (style instanceof StaggeredStyle) {
        StaggeredStyle sStyle = (StaggeredStyle) style;
        helper.setLane(sStyle.column);
        helper.setItemCount(mCells.size());
        helper.setVGap(sStyle.vGap);
        helper.setHGap(sStyle.hGap);
    }

    helper.setMargin(style.margin[Style.MARGIN_LEFT_INDEX], style.margin[Style.MARGIN_TOP_INDEX],
            style.margin[Style.MARGIN_RIGHT_INDEX], style.margin[Style.MARGIN_BOTTOM_INDEX]);
    helper.setPadding(style.padding[Style.MARGIN_LEFT_INDEX], style.padding[Style.MARGIN_TOP_INDEX],
            style.padding[Style.MARGIN_RIGHT_INDEX], style.padding[Style.MARGIN_BOTTOM_INDEX]);

    return helper;
}
 
Example #14
Source File: FixLinearScrollCard.java    From Tangram-Android with MIT License 6 votes vote down vote up
@Nullable
@Override
public LayoutHelper convertLayoutHelper(LayoutHelper oldHelper) {
    ScrollFixLayoutHelper scrollFixHelper;
    if (oldHelper instanceof ScrollFixLayoutHelper) {
        scrollFixHelper = (ScrollFixLayoutHelper) oldHelper;
    } else {
        scrollFixHelper = new ScrollFixLayoutHelper(0, 0);
    }

    if (mFixStyle != null)
        scrollFixHelper.setAspectRatio(mFixStyle.aspectRatio);

        FixCard.FixStyle fixStyle = mFixStyle;
        scrollFixHelper.setAlignType(fixStyle.alignType);
        scrollFixHelper.setShowType(fixStyle.showType);
        scrollFixHelper.setSketchMeasure(fixStyle.sketchMeasure);
        scrollFixHelper.setX(fixStyle.x);
        scrollFixHelper.setY(fixStyle.y);

    return scrollFixHelper;
}
 
Example #15
Source File: StaggeredCard.java    From Tangram-Android with MIT License 6 votes vote down vote up
@Nullable
@Override
public LayoutHelper convertLayoutHelper(@Nullable LayoutHelper oldHelper) {
    StaggeredGridLayoutHelper helper = null;
    if (oldHelper instanceof StaggeredGridLayoutHelper) {
        helper = (StaggeredGridLayoutHelper) oldHelper;
    } else {
        helper = new StaggeredGridLayoutHelper();
    }

    if (style instanceof StaggeredStyle) {
        StaggeredStyle sStyle = (StaggeredStyle) style;
        helper.setLane(sStyle.column);
        helper.setItemCount(mCells.size());
        helper.setVGap(sStyle.vGap);
        helper.setHGap(sStyle.hGap);
    }

    helper.setMargin(style.margin[Style.MARGIN_LEFT_INDEX], style.margin[Style.MARGIN_TOP_INDEX],
            style.margin[Style.MARGIN_RIGHT_INDEX], style.margin[Style.MARGIN_BOTTOM_INDEX]);
    helper.setPadding(style.padding[Style.MARGIN_LEFT_INDEX], style.padding[Style.MARGIN_TOP_INDEX],
            style.padding[Style.MARGIN_RIGHT_INDEX], style.padding[Style.MARGIN_BOTTOM_INDEX]);

    return helper;
}
 
Example #16
Source File: PinTopCard.java    From Tangram-Android with MIT License 5 votes vote down vote up
@Nullable
@Override
public LayoutHelper convertLayoutHelper(@Nullable LayoutHelper oldHelper) {
    LayoutHelper helper = super.convertLayoutHelper(oldHelper);
    if (helper instanceof FixLayoutHelper) {
        ((FixLayoutHelper) helper).setAlignType(FixLayoutHelper.TOP_LEFT);
    }

    return helper;
}
 
Example #17
Source File: FixCard.java    From Tangram-Android with MIT License 5 votes vote down vote up
@Nullable
@Override
public LayoutHelper convertLayoutHelper(@Nullable LayoutHelper oldHelper) {
    FixLayoutHelper fixHelper;
    if (oldHelper instanceof FixLayoutHelper) {
        fixHelper = (FixLayoutHelper) oldHelper;
    } else {
        fixHelper = new FixLayoutHelper(0, 0);
    }


    // reset value
    fixHelper.setSketchMeasure(false);
    fixHelper.setItemCount(mCells.size());

    if (style instanceof FixStyle) {
        FixStyle fixStyle = (FixStyle) style;
        fixHelper.setAlignType(fixStyle.alignType);
        fixHelper.setX(fixStyle.x);
        fixHelper.setY(fixStyle.y);
    } else {
        // reset default value
        fixHelper.setAlignType(TOP_LEFT);
        fixHelper.setX(0);
        fixHelper.setY(0);
    }

    fixHelper.setMargin(style.margin[Style.MARGIN_LEFT_INDEX], style.margin[Style.MARGIN_TOP_INDEX],
        style.margin[Style.MARGIN_RIGHT_INDEX], style.margin[Style.MARGIN_BOTTOM_INDEX]);
    fixHelper.setPadding(style.padding[Style.MARGIN_LEFT_INDEX], style.padding[Style.MARGIN_TOP_INDEX],
        style.padding[Style.MARGIN_RIGHT_INDEX], style.padding[Style.MARGIN_BOTTOM_INDEX]);
    return fixHelper;
}
 
Example #18
Source File: TangramEngine.java    From Tangram-Android with MIT License 5 votes vote down vote up
/**
 * Remove target cell. TODO handle nested card, cell in staggered, cell in onePlusN
 * @param data
 * @since 2.1.0
 */
protected void removeBy(BaseCell data) {
    VirtualLayoutManager layoutManager = getLayoutManager();
    if (data != null && mGroupBasicAdapter != null && layoutManager != null) {
        int removePosition = mGroupBasicAdapter.getPositionByItem(data);
        if (removePosition >= 0) {
            int cardIdx = mGroupBasicAdapter.findCardIdxFor(removePosition);
            Card card = mGroupBasicAdapter.getCardRange(cardIdx).second;
            card.removeCellSilently(data);
            List<LayoutHelper> layoutHelpers = layoutManager.getLayoutHelpers();
            LayoutHelper emptyLayoutHelper = null;
            if (layoutHelpers != null && cardIdx >= 0 && cardIdx < layoutHelpers.size()) {
                for (int i = 0, size = layoutHelpers.size(); i < size; i++) {
                    LayoutHelper layoutHelper = layoutHelpers.get(i);
                    int start = layoutHelper.getRange().getLower();
                    int end = layoutHelper.getRange().getUpper();
                    if (end < removePosition) {
                        //do nothing
                    } else if (start <= removePosition && removePosition <= end) {
                        int itemCount = layoutHelper.getItemCount() - 1;
                        if (itemCount > 0) {
                            layoutHelper.setItemCount(itemCount);
                            layoutHelper.setRange(start, end - 1);
                        } else {
                            emptyLayoutHelper = layoutHelper;
                        }
                    } else if (removePosition < start) {
                        layoutHelper.setRange(start - 1, end - 1);
                    }
                }
                if (emptyLayoutHelper != null) {
                    final List<LayoutHelper> newLayoutHelpers = new LinkedList<>(layoutHelpers);
                    newLayoutHelpers.remove(emptyLayoutHelper);
                    layoutManager.setLayoutHelpers(newLayoutHelpers);
                }
                mGroupBasicAdapter.removeComponent(data);
            }
        }
    }
}
 
Example #19
Source File: TangramEngine.java    From Tangram-Android with MIT License 5 votes vote down vote up
/**
 * Remove all cells in a card.
 * @param group
 * @since 2.1.0
 */
protected void removeBatchBy(Card group) {
    VirtualLayoutManager layoutManager = getLayoutManager();
    if (group != null && mGroupBasicAdapter != null && layoutManager != null) {
        int cardIdx = mGroupBasicAdapter.findCardIdxForCard(group);
        List<LayoutHelper> layoutHelpers = layoutManager.getLayoutHelpers();
        LayoutHelper emptyLayoutHelper = null;
        int removeItemCount = 0;
        if (layoutHelpers != null && cardIdx >= 0 && cardIdx < layoutHelpers.size()) {
            for (int i = 0, size = layoutHelpers.size(); i < size; i++) {
                LayoutHelper layoutHelper = layoutHelpers.get(i);
                int start = layoutHelper.getRange().getLower();
                int end = layoutHelper.getRange().getUpper();
                if (i < cardIdx) {
                    // do nothing
                } else if (i == cardIdx) {
                    removeItemCount = layoutHelper.getItemCount();
                    emptyLayoutHelper = layoutHelper;
                } else {
                    layoutHelper.setRange(start - removeItemCount, end - removeItemCount);
                }
            }
            if (emptyLayoutHelper != null) {
                final List<LayoutHelper> newLayoutHelpers = new LinkedList<>(layoutHelpers);
                newLayoutHelpers.remove(emptyLayoutHelper);
                layoutManager.setLayoutHelpers(newLayoutHelpers);
            }
            mGroupBasicAdapter.removeComponents(group);
        }
    }
}
 
Example #20
Source File: TangramEngine.java    From Tangram-Android with MIT License 5 votes vote down vote up
/**
 * Replace parent card's children. Cells' size should be equal with parent's children size.
 * @param parent
 * @param cells
 * @since 2.1.0
 */
public void replace(Card parent, List<BaseCell> cells) {
    VirtualLayoutManager layoutManager = getLayoutManager();
    if (parent != null && cells != null && cells.size() > 0 && mGroupBasicAdapter != null && layoutManager != null) {
        Card card = parent;
        List<BaseCell> oldChildren = new ArrayList<>(parent.getCells());
        if (oldChildren.size() == cells.size()) {
            card.setCells(cells);
            mGroupBasicAdapter.replaceComponent(oldChildren, cells);
        } else {
            List<LayoutHelper> layoutHelpers = layoutManager.getLayoutHelpers();
            int cardIdx = mGroupBasicAdapter.findCardIdxForCard(parent);
            int diff = 0;
            if (layoutHelpers != null && cardIdx >= 0 && cardIdx < layoutHelpers.size()) {
                for (int i = 0, size = layoutHelpers.size(); i < size; i++) {
                    LayoutHelper layoutHelper = layoutHelpers.get(i);
                    int start = layoutHelper.getRange().getLower();
                    int end = layoutHelper.getRange().getUpper();
                    if (i < cardIdx) {
                        // do nothing
                    } else if (i == cardIdx) {
                        diff = cells.size() - layoutHelper.getItemCount();
                        layoutHelper.setItemCount(cells.size());
                        layoutHelper.setRange(start, end + diff);
                    } else {
                        layoutHelper.setRange(start + diff, end + diff);
                    }
                }
                card.setCells(cells);
                mGroupBasicAdapter.replaceComponent(oldChildren, cells);
            }
        }
    }
}
 
Example #21
Source File: VVCard.java    From Tangram-Android with MIT License 5 votes vote down vote up
@Nullable
@Override
public LayoutHelper convertLayoutHelper(@Nullable LayoutHelper oldHelper) {
    LinearLayoutHelper helper = new LinearLayoutHelper();
    helper.setItemCount(getCells().size());
    return helper;
}
 
Example #22
Source File: ScrollFixCard.java    From Tangram-Android with MIT License 5 votes vote down vote up
@Nullable
@Override
public LayoutHelper convertLayoutHelper(@Nullable LayoutHelper oldHelper) {
    ScrollFixLayoutHelper scrollFixHelper;
    if (oldHelper instanceof ScrollFixLayoutHelper) {
        scrollFixHelper = (ScrollFixLayoutHelper) oldHelper;
    } else {
        scrollFixHelper = new ScrollFixLayoutHelper(0, 0);
    }

    if (style != null)
        scrollFixHelper.setAspectRatio(style.aspectRatio);

    if (style instanceof FixStyle) {
        FixStyle fixStyle = (FixStyle) style;
        scrollFixHelper.setAlignType(fixStyle.alignType);
        scrollFixHelper.setShowType(fixStyle.showType);
        scrollFixHelper.setSketchMeasure(fixStyle.sketchMeasure);
        scrollFixHelper.setX(fixStyle.x);
        scrollFixHelper.setY(fixStyle.y);
    } else {
        // reset
        scrollFixHelper.setAlignType(FixLayoutHelper.TOP_LEFT);
        scrollFixHelper.setShowType(ScrollFixLayoutHelper.SHOW_ALWAYS);
        scrollFixHelper.setSketchMeasure(true);
        scrollFixHelper.setX(0);
        scrollFixHelper.setY(0);
    }

    return scrollFixHelper;
}
 
Example #23
Source File: GridCard.java    From Tangram-Android with MIT License 5 votes vote down vote up
@Nullable
@Override
public LayoutHelper convertLayoutHelper(@Nullable LayoutHelper helper) {
    //create new layoutHelper to simplify recycling background view in vlayout
    RangeGridLayoutHelper gridHelper = new RangeGridLayoutHelper(1, mCells.size());

    gridHelper.setItemCount(mCells.size());
    gridHelper.setSpanCount(mColumn);


    // update style
    if (style instanceof GridStyle) {
        GridStyle gridStyle = (GridStyle) style;

        int totalColumn = mColumn;
        if (gridStyle.column > 0) {
            totalColumn = gridStyle.column;
            gridHelper.setSpanCount(gridStyle.column);
        }

        gridHelper.setSpanSizeLookup(new CellSpanSizeLookup(mCells, totalColumn));

        gridHelper.setVGap(gridStyle.vGap);
        gridHelper.setHGap(gridStyle.hGap);
        gridHelper.setAutoExpand(gridStyle.autoExpand);

        if (gridStyle.cols != null && gridStyle.cols.length > 0) {
            gridHelper.setWeights(gridStyle.cols);
        }

        if (!Float.isNaN(gridStyle.aspectRatio)) {
            gridHelper.setAspectRatio(gridStyle.aspectRatio);
        }
    }

    gridHelper.getRootRangeStyle().onClearChildMap();
    convertChildLayoutHelper(gridHelper, this);

    return gridHelper;
}
 
Example #24
Source File: WrapperCard.java    From Tangram-Android with MIT License 5 votes vote down vote up
@Nullable
@Override
public LayoutHelper convertLayoutHelper(@Nullable LayoutHelper oldHelper) {
    LayoutHelper layoutHelper = mCard.convertLayoutHelper(oldHelper);
    if (layoutHelper != null) {
        layoutHelper.setItemCount(mCells.size());
        if (layoutHelper instanceof RangeGridLayoutHelper) {
            RangeGridLayoutHelper gridHelper = (RangeGridLayoutHelper) layoutHelper;
            gridHelper.setSpanSizeLookup(new GridCard.CellSpanSizeLookup(mCells, gridHelper.getSpanCount()));
        }
    }

    return layoutHelper;
}
 
Example #25
Source File: WrapperCard.java    From Tangram-Android with MIT License 5 votes vote down vote up
@Nullable
@Override
public LayoutHelper convertLayoutHelper(@Nullable LayoutHelper oldHelper) {
    LayoutHelper layoutHelper = mCard.convertLayoutHelper(oldHelper);
    if (layoutHelper != null) {
        layoutHelper.setItemCount(mCells.size());
        if (layoutHelper instanceof RangeGridLayoutHelper) {
            RangeGridLayoutHelper gridHelper = (RangeGridLayoutHelper) layoutHelper;
            gridHelper.setSpanSizeLookup(new GridCard.CellSpanSizeLookup(mCells, gridHelper.getSpanCount()));
        }
    }

    return layoutHelper;
}
 
Example #26
Source File: GridCard.java    From Tangram-Android with MIT License 5 votes vote down vote up
@Nullable
@Override
public LayoutHelper convertLayoutHelper(@Nullable LayoutHelper helper) {
    //create new layoutHelper to simplify recycling background view in vlayout
    RangeGridLayoutHelper gridHelper = new RangeGridLayoutHelper(1, mCells.size());

    gridHelper.setItemCount(mCells.size());
    gridHelper.setSpanCount(mColumn);


    // update style
    if (style instanceof GridStyle) {
        GridStyle gridStyle = (GridStyle) style;

        int totalColumn = mColumn;
        if (gridStyle.column > 0) {
            totalColumn = gridStyle.column;
            gridHelper.setSpanCount(gridStyle.column);
        }

        gridHelper.setSpanSizeLookup(new CellSpanSizeLookup(mCells, totalColumn));

        gridHelper.setVGap(gridStyle.vGap);
        gridHelper.setHGap(gridStyle.hGap);
        gridHelper.setAutoExpand(gridStyle.autoExpand);

        if (gridStyle.cols != null && gridStyle.cols.length > 0) {
            gridHelper.setWeights(gridStyle.cols);
        }

        if (!Float.isNaN(gridStyle.aspectRatio)) {
            gridHelper.setAspectRatio(gridStyle.aspectRatio);
        }
    }

    gridHelper.getRootRangeStyle().onClearChildMap();
    convertChildLayoutHelper(gridHelper, this);

    return gridHelper;
}
 
Example #27
Source File: LinearScrollCard.java    From Tangram-Android with MIT License 5 votes vote down vote up
@Nullable
@Override
public LayoutHelper convertLayoutHelper(@Nullable LayoutHelper oldHelper) {
    GridLayoutHelper helper = new GridLayoutHelper(1);
    helper.setItemCount(getCells().size());
    if (style != null && !Float.isNaN(style.aspectRatio)) {
        helper.setAspectRatio(style.aspectRatio);
    }
    return helper;
}
 
Example #28
Source File: PinBottomCard.java    From Tangram-Android with MIT License 5 votes vote down vote up
@Nullable
@Override
public LayoutHelper convertLayoutHelper(@Nullable LayoutHelper oldHelper) {
    LayoutHelper helper = super.convertLayoutHelper(oldHelper);
    if (helper instanceof FixLayoutHelper) {
        ((FixLayoutHelper) helper).setAlignType(FixLayoutHelper.BOTTOM_LEFT);
        ((FixLayoutHelper) helper).setSketchMeasure(true);
    }


    return helper;
}
 
Example #29
Source File: BannerCard.java    From Tangram-Android with MIT License 5 votes vote down vote up
@Nullable
@Override
public LayoutHelper convertLayoutHelper(LayoutHelper oldHelper) {
    LinearLayoutHelper helper = new LinearLayoutHelper();
    helper.setItemCount(getCells().size());
    return helper;
}
 
Example #30
Source File: BannerCard.java    From Tangram-Android with MIT License 5 votes vote down vote up
@Nullable
@Override
public LayoutHelper convertLayoutHelper(LayoutHelper oldHelper) {
    LinearLayoutHelper helper = new LinearLayoutHelper();
    helper.setItemCount(getCells().size());
    return helper;
}