[Grid] replace Guidelines with viewBoxes#622
Conversation
|
jafu888
left a comment
There was a problem hiding this comment.
Removing ConstraintSet
As an example of how you remove
assume you have
private ConstraintLayout.LayoutParams params(View v) {
return (ConstraintLayout.LayoutParams) view.getLayoutParams();
}
A chain is constraint like this
| | -> | |-> | |
start <- | View1 | | view2 | | view3 | -> end
| | <- | | <- | |
So if you are making a horizontal chain
int starId = StartView.getID();
int endId = EndView.getID();
int pre = startId
View[] toChain ...
int [] chainIDs
for(int i = 0; i < toChain.length; i++){
param= prams(toChain[i])
if (i == 0)
param.startToStart = pre;
else
param.startToEnd = pre;
if (i == lastInChain)
param.endToEnd = endId;
else
param.endToStart = chainId[i+1];
pre = chainId[i];
toChain[i].setLayoutParams(param);
}
|
All other issues will be addressed in another PR |
This PR does two things:
To make the Grid more flexible, viewBoxes (Views) are created to replace Guidelines for widgets to add constraints to.
There are two main advantage of this approach:
The basic idea is that we create and place boxViews to constraint widgets. See the following figures for examples. Figure 1 shows how boxViews are created and rearranged for a 7 X 4 (rows X columns) Grid and Figure 2 shows an example of a 4 X 7 Grid.
The additional views needed to be created for the viewBox approach would be max(rows, columns). As for the Guideline approach, it would be (row - 1 + columns - 1).
Figure 1

Figure 2
