# ChainHead

Artifact: [androidx.constraintlayout:constraintlayout-core](https://developer.android.com/jetpack/androidx/releases/constraintlayout) [View Source](https://cs.android.com/search?q=file:androidx/constraintlayout/core/widgets/ChainHead.java+class:androidx.constraintlayout.core.widgets.ChainHead) Added in [1.1.2](https://developer.android.com/jetpack/androidx/releases/constraintlayout#1.1.2)

*** ** * ** ***


```
class ChainHead
```

<br />

*** ** * ** ***

Class to represent a chain by its main elements.

## Summary

| ### Public constructors |
|---|
| `https://developer.android.com/reference/kotlin/androidx/constraintlayout/core/widgets/ChainHead#ChainHead(androidx.constraintlayout.core.widgets.ConstraintWidget,int,boolean)(first: https://developer.android.com/reference/kotlin/androidx/constraintlayout/core/widgets/ConstraintWidget!, orientation: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html, isRtl: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html)` Initialize variables, then determine visible widgets, the head of chain and matched constraint widgets. |

| ### Public functions |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `https://developer.android.com/reference/kotlin/androidx/constraintlayout/core/widgets/ChainHead#define()()` |
| `https://developer.android.com/reference/kotlin/androidx/constraintlayout/core/widgets/ConstraintWidget!` | `https://developer.android.com/reference/kotlin/androidx/constraintlayout/core/widgets/ChainHead#getFirst()()` |
| `https://developer.android.com/reference/kotlin/androidx/constraintlayout/core/widgets/ConstraintWidget!` | `https://developer.android.com/reference/kotlin/androidx/constraintlayout/core/widgets/ChainHead#getFirstMatchConstraintWidget()()` |
| `https://developer.android.com/reference/kotlin/androidx/constraintlayout/core/widgets/ConstraintWidget!` | `https://developer.android.com/reference/kotlin/androidx/constraintlayout/core/widgets/ChainHead#getFirstVisibleWidget()()` |
| `https://developer.android.com/reference/kotlin/androidx/constraintlayout/core/widgets/ConstraintWidget!` | `https://developer.android.com/reference/kotlin/androidx/constraintlayout/core/widgets/ChainHead#getHead()()` |
| `https://developer.android.com/reference/kotlin/androidx/constraintlayout/core/widgets/ConstraintWidget!` | `https://developer.android.com/reference/kotlin/androidx/constraintlayout/core/widgets/ChainHead#getLast()()` |
| `https://developer.android.com/reference/kotlin/androidx/constraintlayout/core/widgets/ConstraintWidget!` | `https://developer.android.com/reference/kotlin/androidx/constraintlayout/core/widgets/ChainHead#getLastMatchConstraintWidget()()` |
| `https://developer.android.com/reference/kotlin/androidx/constraintlayout/core/widgets/ConstraintWidget!` | `https://developer.android.com/reference/kotlin/androidx/constraintlayout/core/widgets/ChainHead#getLastVisibleWidget()()` |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html` | `https://developer.android.com/reference/kotlin/androidx/constraintlayout/core/widgets/ChainHead#getTotalWeight()()` |

| ### Protected properties |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/constraintlayout/core/widgets/ConstraintWidget!` | `https://developer.android.com/reference/kotlin/androidx/constraintlayout/core/widgets/ChainHead#mFirst()` |
| `https://developer.android.com/reference/kotlin/androidx/constraintlayout/core/widgets/ConstraintWidget!` | `https://developer.android.com/reference/kotlin/androidx/constraintlayout/core/widgets/ChainHead#mFirstMatchConstraintWidget()` |
| `https://developer.android.com/reference/kotlin/androidx/constraintlayout/core/widgets/ConstraintWidget!` | `https://developer.android.com/reference/kotlin/androidx/constraintlayout/core/widgets/ChainHead#mFirstVisibleWidget()` |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | `https://developer.android.com/reference/kotlin/androidx/constraintlayout/core/widgets/ChainHead#mHasComplexMatchWeights()` |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | `https://developer.android.com/reference/kotlin/androidx/constraintlayout/core/widgets/ChainHead#mHasDefinedWeights()` |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | `https://developer.android.com/reference/kotlin/androidx/constraintlayout/core/widgets/ChainHead#mHasRatio()` |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | `https://developer.android.com/reference/kotlin/androidx/constraintlayout/core/widgets/ChainHead#mHasUndefinedWeights()` |
| `https://developer.android.com/reference/kotlin/androidx/constraintlayout/core/widgets/ConstraintWidget!` | `https://developer.android.com/reference/kotlin/androidx/constraintlayout/core/widgets/ChainHead#mHead()` |
| `https://developer.android.com/reference/kotlin/androidx/constraintlayout/core/widgets/ConstraintWidget!` | `https://developer.android.com/reference/kotlin/androidx/constraintlayout/core/widgets/ChainHead#mLast()` |
| `https://developer.android.com/reference/kotlin/androidx/constraintlayout/core/widgets/ConstraintWidget!` | `https://developer.android.com/reference/kotlin/androidx/constraintlayout/core/widgets/ChainHead#mLastMatchConstraintWidget()` |
| `https://developer.android.com/reference/kotlin/androidx/constraintlayout/core/widgets/ConstraintWidget!` | `https://developer.android.com/reference/kotlin/androidx/constraintlayout/core/widgets/ChainHead#mLastVisibleWidget()` |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html` | `https://developer.android.com/reference/kotlin/androidx/constraintlayout/core/widgets/ChainHead#mTotalWeight()` |
| `https://developer.android.com/reference/java/util/ArrayList.html<https://developer.android.com/reference/kotlin/androidx/constraintlayout/core/widgets/ConstraintWidget!>!` | `https://developer.android.com/reference/kotlin/androidx/constraintlayout/core/widgets/ChainHead#mWeightedMatchConstraintsWidgets()` |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | `https://developer.android.com/reference/kotlin/androidx/constraintlayout/core/widgets/ChainHead#mWidgetsCount()` |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | `https://developer.android.com/reference/kotlin/androidx/constraintlayout/core/widgets/ChainHead#mWidgetsMatchCount()` |

## Public constructors

### ChainHead

Added in [1.1.2](https://developer.android.com/jetpack/androidx/releases/constraintlayout#1.1.2)

```
ChainHead(first: ConstraintWidget!, orientation: Int, isRtl: Boolean)
```

Initialize variables, then determine visible widgets, the head of chain and matched constraint widgets.

| Parameters |
|---|---|
| `first: https://developer.android.com/reference/kotlin/androidx/constraintlayout/core/widgets/ConstraintWidget!` | first widget in a chain |
| `orientation: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | orientation of the chain (either Horizontal or Vertical) |
| `isRtl: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | Right-to-left layout flag to determine the actual head of the chain |

## Public functions

### define

Added in [1.1.2](https://developer.android.com/jetpack/androidx/releases/constraintlayout#1.1.2)

```
fun define(): Unit
```

### getFirst

Added in [1.1.2](https://developer.android.com/jetpack/androidx/releases/constraintlayout#1.1.2)

```
fun getFirst(): ConstraintWidget!
```

### getFirstMatchConstraintWidget

Added in [1.1.2](https://developer.android.com/jetpack/androidx/releases/constraintlayout#1.1.2)

```
fun getFirstMatchConstraintWidget(): ConstraintWidget!
```

### getFirstVisibleWidget

Added in [1.1.2](https://developer.android.com/jetpack/androidx/releases/constraintlayout#1.1.2)

```
fun getFirstVisibleWidget(): ConstraintWidget!
```

### getHead

Added in [1.1.2](https://developer.android.com/jetpack/androidx/releases/constraintlayout#1.1.2)

```
fun getHead(): ConstraintWidget!
```

### getLast

Added in [1.1.2](https://developer.android.com/jetpack/androidx/releases/constraintlayout#1.1.2)

```
fun getLast(): ConstraintWidget!
```

### getLastMatchConstraintWidget

Added in [1.1.2](https://developer.android.com/jetpack/androidx/releases/constraintlayout#1.1.2)

```
fun getLastMatchConstraintWidget(): ConstraintWidget!
```

### getLastVisibleWidget

Added in [1.1.2](https://developer.android.com/jetpack/androidx/releases/constraintlayout#1.1.2)

```
fun getLastVisibleWidget(): ConstraintWidget!
```

### getTotalWeight

Added in [1.1.2](https://developer.android.com/jetpack/androidx/releases/constraintlayout#1.1.2)

```
fun getTotalWeight(): Float
```

## Protected properties

### mFirst

Added in [1.1.2](https://developer.android.com/jetpack/androidx/releases/constraintlayout#1.1.2)

```
protected val mFirst: ConstraintWidget!
```

### mFirstMatchConstraintWidget

Added in [1.1.2](https://developer.android.com/jetpack/androidx/releases/constraintlayout#1.1.2)

```
protected val mFirstMatchConstraintWidget: ConstraintWidget!
```

### mFirstVisibleWidget

Added in [1.1.2](https://developer.android.com/jetpack/androidx/releases/constraintlayout#1.1.2)

```
protected val mFirstVisibleWidget: ConstraintWidget!
```

### mHasComplexMatchWeights

Added in [1.1.2](https://developer.android.com/jetpack/androidx/releases/constraintlayout#1.1.2)

```
protected val mHasComplexMatchWeights: Boolean
```

### mHasDefinedWeights

Added in [1.1.2](https://developer.android.com/jetpack/androidx/releases/constraintlayout#1.1.2)

```
protected val mHasDefinedWeights: Boolean
```

### mHasRatio

Added in [1.1.2](https://developer.android.com/jetpack/androidx/releases/constraintlayout#1.1.2)

```
protected val mHasRatio: Boolean
```

### mHasUndefinedWeights

Added in [1.1.2](https://developer.android.com/jetpack/androidx/releases/constraintlayout#1.1.2)

```
protected val mHasUndefinedWeights: Boolean
```

### mHead

Added in [1.1.2](https://developer.android.com/jetpack/androidx/releases/constraintlayout#1.1.2)

```
protected val mHead: ConstraintWidget!
```

### mLast

Added in [1.1.2](https://developer.android.com/jetpack/androidx/releases/constraintlayout#1.1.2)

```
protected val mLast: ConstraintWidget!
```

### mLastMatchConstraintWidget

Added in [1.1.2](https://developer.android.com/jetpack/androidx/releases/constraintlayout#1.1.2)

```
protected val mLastMatchConstraintWidget: ConstraintWidget!
```

### mLastVisibleWidget

Added in [1.1.2](https://developer.android.com/jetpack/androidx/releases/constraintlayout#1.1.2)

```
protected val mLastVisibleWidget: ConstraintWidget!
```

### mTotalWeight

Added in [1.1.2](https://developer.android.com/jetpack/androidx/releases/constraintlayout#1.1.2)

```
protected val mTotalWeight: Float
```

### mWeightedMatchConstraintsWidgets

Added in [1.1.2](https://developer.android.com/jetpack/androidx/releases/constraintlayout#1.1.2)

```
protected val mWeightedMatchConstraintsWidgets: ArrayList<ConstraintWidget!>!
```

### mWidgetsCount

Added in [1.1.2](https://developer.android.com/jetpack/androidx/releases/constraintlayout#1.1.2)

```
protected val mWidgetsCount: Int
```

### mWidgetsMatchCount

Added in [1.1.2](https://developer.android.com/jetpack/androidx/releases/constraintlayout#1.1.2)

```
protected val mWidgetsMatchCount: Int
```