package com.beloo.widget.chipslayoutmanager.gravity;
|
|
import android.graphics.Rect;
|
|
import com.beloo.widget.chipslayoutmanager.layouter.AbstractLayouter;
|
import com.beloo.widget.chipslayoutmanager.layouter.Item;
|
|
import java.util.List;
|
|
class RTLRowFillSpaceStrategy implements IRowStrategy {
|
|
@Override
|
public void applyStrategy(AbstractLayouter abstractLayouter, List<Item> row) {
|
if (abstractLayouter.getRowSize() == 1) return;
|
int difference = GravityUtil.getHorizontalDifference(abstractLayouter) / (abstractLayouter.getRowSize() - 1);
|
int offsetDifference = 0;
|
|
for (Item item : row) {
|
Rect childRect = item.getViewRect();
|
|
if (childRect.right == abstractLayouter.getCanvasRightBorder()) {
|
//right view of row
|
|
int rightDif = abstractLayouter.getCanvasRightBorder() - childRect.right;
|
//press view to right border
|
childRect.left += rightDif;
|
childRect.right = abstractLayouter.getCanvasRightBorder();
|
continue;
|
}
|
offsetDifference += difference;
|
|
childRect.right -= offsetDifference;
|
childRect.left -= offsetDifference;
|
}
|
|
}
|
}
|