A chain is a group of views that are linked to each other with bi-directional position constraints.
![alt text](https://developer.android.com/training/constraint-layout/images/constraint-chain_2x.png "Chains")
A chain allows you to distribute a group of views horizontally or vertically with the following styles:
![alt text](https://developer.android.com/training/constraint-layout/images/constraint-chain-styles_2x.png "Chains")
1. <u>Spread</u>: The views are evenly distributed (after margins are accounted for). This is the default.
2. <u>Spread inside</u>: The first and last view are affixed to the constraints on each end of the chain and the rest are evenly distributed.
3. <u>Weighted</u>: When the chain is set to either spread or spread inside, you can fill the remaining space by setting one or more views to "match constraints" (0dp). By default, the space is evenly distributed between each view that's set to "match constraints," but you can assign a weight of importance to each view using the layout_constraintHorizontal_weight and layout_constraintVertical_weight attributes. If you're familiar with layout_weight in a linear layout, this works the same way. So the view with the highest weight value gets the most amount of space; views that have the same weight get the same amount of space.
4. <u>Packed</u>: The views are packed together (after margins are accounted for). You can then adjust the whole chain's bias (left/right or up/down) by changing the chain's head view bias.