Search in sources :

Example 6 with Section

use of com.marshalchen.common.uimodule.freeflow.core.Section in project UltimateAndroid by cymcsg.

the class DefaultSectionAdapter method setData.

public void setData(int headerCount, int itemCount) {
    sections.clear();
    for (int i = 0; i < headerCount; i++) {
        Section s = new Section();
        s.setSectionTitle("Section " + i);
        for (int j = 0; j < itemCount; j++) {
            s.addItem(new Object());
        }
        sections.add(s);
    }
}
Also used : Section(com.marshalchen.common.uimodule.freeflow.core.Section) Paint(android.graphics.Paint)

Example 7 with Section

use of com.marshalchen.common.uimodule.freeflow.core.Section in project UltimateAndroid by cymcsg.

the class HLayout method getContentWidth.

@Override
public int getContentWidth() {
    if (itemsAdapter == null || itemsAdapter.getNumberOfSections() <= 0) {
        return 0;
    }
    int sectionIndex = itemsAdapter.getNumberOfSections() - 1;
    Section s = itemsAdapter.getSection(sectionIndex);
    if (s.getDataCount() == 0)
        return 0;
    Object lastFrameData = s.getDataAtIndex(s.getDataCount() - 1);
    FreeFlowItem fd = proxies.get(lastFrameData);
    return (fd.frame.left + fd.frame.width());
}
Also used : FreeFlowItem(com.marshalchen.common.uimodule.freeflow.core.FreeFlowItem) Section(com.marshalchen.common.uimodule.freeflow.core.Section)

Example 8 with Section

use of com.marshalchen.common.uimodule.freeflow.core.Section in project UltimateAndroid by cymcsg.

the class VGridLayout method prepareLayout.

public void prepareLayout() {
    proxies.clear();
    int cols = width / itemWidth;
    int topStart = 0;
    if (itemsAdapter == null)
        return;
    for (int i = 0; i < itemsAdapter.getNumberOfSections(); i++) {
        Section s = itemsAdapter.getSection(i);
        if (itemsAdapter.shouldDisplaySectionHeaders()) {
            FreeFlowItem header = new FreeFlowItem();
            Rect hframe = new Rect();
            header.itemSection = i;
            header.itemIndex = -1;
            header.isHeader = true;
            hframe.left = 0;
            hframe.top = topStart;
            hframe.right = headerWidth;
            hframe.bottom = topStart + headerHeight;
            header.frame = hframe;
            header.data = s.getHeaderData();
            proxies.put(header.data, header);
            topStart += headerHeight;
        }
        for (int j = 0; j < s.getDataCount(); j++) {
            FreeFlowItem descriptor = new FreeFlowItem();
            Rect frame = new Rect();
            descriptor.itemSection = i;
            descriptor.itemIndex = j;
            frame.left = (j % cols) * itemWidth;
            frame.top = (j / cols) * itemHeight + topStart;
            frame.right = frame.left + itemWidth;
            frame.bottom = frame.top + itemHeight;
            frame.inset(itemFrameInsetX, itemFrameInsetY);
            descriptor.frame = frame;
            descriptor.data = s.getDataAtIndex(j);
            proxies.put(descriptor.data, descriptor);
        }
        int mod = 0;
        if (s.getDataCount() % cols != 0)
            mod = 1;
        topStart += ((s.getDataCount() / cols) + mod) * itemHeight;
    }
}
Also used : Rect(android.graphics.Rect) FreeFlowItem(com.marshalchen.common.uimodule.freeflow.core.FreeFlowItem) Section(com.marshalchen.common.uimodule.freeflow.core.Section)

Example 9 with Section

use of com.marshalchen.common.uimodule.freeflow.core.Section in project UltimateAndroid by cymcsg.

the class VLayout method prepareLayout.

public void prepareLayout() {
    if (itemHeight < 0) {
        throw new IllegalStateException("itemHeight not set");
    }
    proxies.clear();
    int topStart = 0;
    for (int i = 0; i < itemsAdapter.getNumberOfSections(); i++) {
        Section s = itemsAdapter.getSection(i);
        if (itemsAdapter.shouldDisplaySectionHeaders()) {
            if (headerWidth < 0) {
                throw new IllegalStateException("headerWidth not set");
            }
            if (headerHeight < 0) {
                throw new IllegalStateException("headerHeight not set");
            }
            FreeFlowItem header = new FreeFlowItem();
            Rect hframe = new Rect();
            header.itemSection = i;
            header.itemIndex = -1;
            header.isHeader = true;
            hframe.left = 0;
            hframe.top = topStart;
            hframe.right = headerWidth;
            hframe.bottom = topStart + headerHeight;
            header.frame = hframe;
            header.data = s.getHeaderData();
            proxies.put(header.data, header);
            topStart += headerHeight;
        }
        for (int j = 0; j < s.getDataCount(); j++) {
            FreeFlowItem descriptor = new FreeFlowItem();
            Rect frame = new Rect();
            descriptor.itemSection = i;
            descriptor.itemIndex = j;
            frame.left = 0;
            frame.top = j * itemHeight + topStart;
            frame.right = width;
            frame.bottom = frame.top + itemHeight;
            descriptor.frame = frame;
            descriptor.data = s.getDataAtIndex(j);
            proxies.put(descriptor.data, descriptor);
        }
        topStart += (s.getDataCount()) * itemHeight;
    }
}
Also used : Rect(android.graphics.Rect) FreeFlowItem(com.marshalchen.common.uimodule.freeflow.core.FreeFlowItem) Section(com.marshalchen.common.uimodule.freeflow.core.Section)

Aggregations

Section (com.marshalchen.common.uimodule.freeflow.core.Section)9 FreeFlowItem (com.marshalchen.common.uimodule.freeflow.core.FreeFlowItem)8 Rect (android.graphics.Rect)4 Paint (android.graphics.Paint)1