Android SuperSLiM:部分之间的边距
Android SuperSLiM: Margin between sections
我正在使用 SuperSLiM library 从 google 日历应用程序重新创建议程视图。我遇到的问题是在各部分之间创建一个边距。我试着把 topMargin
当它放在第一个位置时,但是 headers 看起来不正确。
解决了。我给 LineItem 一个布尔值,表示它是最后一个,然后对其应用 bottomMargin。
订单项:
private class LineItem
{
public int sectionFirstPosition;
public boolean isHeader;
public boolean isLast;
public Item item;
public LineItem(Item item, boolean isHeader, int sectionFirstPosition)
{
this.isHeader = isHeader;
this.item = item;
this.sectionFirstPosition = sectionFirstPosition;
}
public void setLast()
{
isLast = true;
}
}
设置最后一项:
for (int i = 0; i < items.size(); i++)
{
long header = item.get(i).getTimestamp();
if (lastHeader != header)
{
if(mItems.size() >= 1)
{
mItems.get(mItems.size() - 1).setLast();
}
// Insert new header view and update section data.
sectionFirstPosition = i + headerCount;
lastHeader = header;
headerCount += 1;
mItems.add(new LineItem(items.get(i), true, sectionFirstPosition));
}
mItems.add(new LineItem(items.get(i), false, sectionFirstPosition));
}
设置下边距:
if(item.isLast)
{
lp.bottomMargin = mContext.getResources().getDimensionPixelSize(R.dimen.section_margin);
}else
{
lp.bottomMargin = 0;
}
我正在使用 SuperSLiM library 从 google 日历应用程序重新创建议程视图。我遇到的问题是在各部分之间创建一个边距。我试着把 topMargin
当它放在第一个位置时,但是 headers 看起来不正确。
解决了。我给 LineItem 一个布尔值,表示它是最后一个,然后对其应用 bottomMargin。
订单项:
private class LineItem
{
public int sectionFirstPosition;
public boolean isHeader;
public boolean isLast;
public Item item;
public LineItem(Item item, boolean isHeader, int sectionFirstPosition)
{
this.isHeader = isHeader;
this.item = item;
this.sectionFirstPosition = sectionFirstPosition;
}
public void setLast()
{
isLast = true;
}
}
设置最后一项:
for (int i = 0; i < items.size(); i++)
{
long header = item.get(i).getTimestamp();
if (lastHeader != header)
{
if(mItems.size() >= 1)
{
mItems.get(mItems.size() - 1).setLast();
}
// Insert new header view and update section data.
sectionFirstPosition = i + headerCount;
lastHeader = header;
headerCount += 1;
mItems.add(new LineItem(items.get(i), true, sectionFirstPosition));
}
mItems.add(new LineItem(items.get(i), false, sectionFirstPosition));
}
设置下边距:
if(item.isLast)
{
lp.bottomMargin = mContext.getResources().getDimensionPixelSize(R.dimen.section_margin);
}else
{
lp.bottomMargin = 0;
}