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);
}
}
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());
}
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;
}
}
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;
}
}
Aggregations