This repository was archived by the owner on Dec 27, 2024. It is now read-only.
[Grid] replace Guidelines with viewBoxes#622
Merged
jafu888 merged 5 commits intoandroidx:mainfrom Jun 9, 2022
Merged
Conversation
Contributor
|
jafu888
reviewed
Jun 8, 2022
Contributor
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);
}
...raintlayout/constraintlayout/src/main/java/androidx/constraintlayout/helper/widget/Grid.java
Outdated
Show resolved
Hide resolved
...raintlayout/constraintlayout/src/main/java/androidx/constraintlayout/helper/widget/Grid.java
Show resolved
Hide resolved
...raintlayout/constraintlayout/src/main/java/androidx/constraintlayout/helper/widget/Grid.java
Show resolved
Hide resolved
...raintlayout/constraintlayout/src/main/java/androidx/constraintlayout/helper/widget/Grid.java
Outdated
Show resolved
Hide resolved
...raintlayout/constraintlayout/src/main/java/androidx/constraintlayout/helper/widget/Grid.java
Show resolved
Hide resolved
...raintlayout/constraintlayout/src/main/java/androidx/constraintlayout/helper/widget/Grid.java
Show resolved
Hide resolved
...raintlayout/constraintlayout/src/main/java/androidx/constraintlayout/helper/widget/Grid.java
Show resolved
Hide resolved
...raintlayout/constraintlayout/src/main/java/androidx/constraintlayout/helper/widget/Grid.java
Show resolved
Hide resolved
...raintlayout/constraintlayout/src/main/java/androidx/constraintlayout/helper/widget/Grid.java
Show resolved
Hide resolved
...raintlayout/constraintlayout/src/main/java/androidx/constraintlayout/helper/widget/Grid.java
Show resolved
Hide resolved
Contributor
|
All other issues will be addressed in another PR |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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
