lmw
2023-03-11 4df5bb59e5fe9f9d140e5610f7772dd8a05a28d4
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
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;
        }
 
    }
}