# PriorityGoalRow

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/PriorityGoalRow.java+class:androidx.constraintlayout.core.PriorityGoalRow) Added in [1.1.2](https://developer.android.com/jetpack/androidx/releases/constraintlayout#1.1.2)

*** ** * ** ***

<br />

```
class PriorityGoalRow : ArrayRow
```

<br />

|---|---|---|
| [kotlin.Any](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html) |||
| ↳ | [androidx.constraintlayout.core.ArrayRow](https://developer.android.com/reference/kotlin/androidx/constraintlayout/core/ArrayRow) ||
|   | ↳ | [androidx.constraintlayout.core.PriorityGoalRow](https://developer.android.com/reference/kotlin/androidx/constraintlayout/core/PriorityGoalRow) |

*** ** * ** ***

Implements a row containing goals taking in account priorities.

## Summary

| ### Public constructors |
|---|
| `https://developer.android.com/reference/kotlin/androidx/constraintlayout/core/PriorityGoalRow#PriorityGoalRow(androidx.constraintlayout.core.Cache)(cache: https://developer.android.com/reference/kotlin/androidx/constraintlayout/core/Cache!)` |

| ### Public functions |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `https://developer.android.com/reference/kotlin/androidx/constraintlayout/core/PriorityGoalRow#addError(androidx.constraintlayout.core.SolverVariable)(error: https://developer.android.com/reference/kotlin/androidx/constraintlayout/core/SolverVariable!)` |
| `abstract https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `https://developer.android.com/reference/kotlin/androidx/constraintlayout/core/PriorityGoalRow#addError(androidx.constraintlayout.core.SolverVariable)(variable: https://developer.android.com/reference/kotlin/androidx/constraintlayout/core/SolverVariable!)` |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `https://developer.android.com/reference/kotlin/androidx/constraintlayout/core/PriorityGoalRow#clear()()` |
| `https://developer.android.com/reference/kotlin/androidx/constraintlayout/core/SolverVariable!` | `https://developer.android.com/reference/kotlin/androidx/constraintlayout/core/PriorityGoalRow#getPivotCandidate(androidx.constraintlayout.core.LinearSystem,boolean[])(system: https://developer.android.com/reference/kotlin/androidx/constraintlayout/core/LinearSystem!, avoid: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean-array/index.html<https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html>!)` |
| `abstract https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `https://developer.android.com/reference/kotlin/androidx/constraintlayout/core/PriorityGoalRow#initFromRow(androidx.constraintlayout.core.LinearSystem.Row)(row: https://developer.android.com/reference/kotlin/androidx/constraintlayout/core/LinearSystem.Row!)` |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | `https://developer.android.com/reference/kotlin/androidx/constraintlayout/core/PriorityGoalRow#isEmpty()()` |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!` | `https://developer.android.com/reference/kotlin/androidx/constraintlayout/core/PriorityGoalRow#toString()()` |
| `abstract https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `https://developer.android.com/reference/kotlin/androidx/constraintlayout/core/PriorityGoalRow#updateFromFinalVariable(androidx.constraintlayout.core.LinearSystem,androidx.constraintlayout.core.SolverVariable,boolean)( system: https://developer.android.com/reference/kotlin/androidx/constraintlayout/core/LinearSystem!, variable: https://developer.android.com/reference/kotlin/androidx/constraintlayout/core/SolverVariable!, removeFromDefinition: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html )` |
| `abstract https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `https://developer.android.com/reference/kotlin/androidx/constraintlayout/core/PriorityGoalRow#updateFromRow(androidx.constraintlayout.core.LinearSystem,androidx.constraintlayout.core.ArrayRow,boolean)(system: https://developer.android.com/reference/kotlin/androidx/constraintlayout/core/LinearSystem!, definition: https://developer.android.com/reference/kotlin/androidx/constraintlayout/core/ArrayRow!, b: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html)` |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `https://developer.android.com/reference/kotlin/androidx/constraintlayout/core/PriorityGoalRow#updateFromRow(androidx.constraintlayout.core.LinearSystem,androidx.constraintlayout.core.ArrayRow,boolean)( system: https://developer.android.com/reference/kotlin/androidx/constraintlayout/core/LinearSystem!, definition: https://developer.android.com/reference/kotlin/androidx/constraintlayout/core/ArrayRow!, removeFromDefinition: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html )` |

### Inherited functions

From [androidx.constraintlayout.core.ArrayRow](https://developer.android.com/reference/kotlin/androidx/constraintlayout/core/ArrayRow) `https://developer.android.com/reference/kotlin/androidx/constraintlayout/core/ArrayRow!` `https://developer.android.com/reference/kotlin/androidx/constraintlayout/core/ArrayRow#addError(androidx.constraintlayout.core.LinearSystem,int)(system: https://developer.android.com/reference/kotlin/androidx/constraintlayout/core/LinearSystem!, strength: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html)` `https://developer.android.com/reference/kotlin/androidx/constraintlayout/core/ArrayRow!` `https://developer.android.com/reference/kotlin/androidx/constraintlayout/core/ArrayRow#createRowDimensionRatio(androidx.constraintlayout.core.SolverVariable,androidx.constraintlayout.core.SolverVariable,androidx.constraintlayout.core.SolverVariable,androidx.constraintlayout.core.SolverVariable,float)(

variableA: https://developer.android.com/reference/kotlin/androidx/constraintlayout/core/SolverVariable!,

variableB: https://developer.android.com/reference/kotlin/androidx/constraintlayout/core/SolverVariable!,

variableC: https://developer.android.com/reference/kotlin/androidx/constraintlayout/core/SolverVariable!,

variableD: https://developer.android.com/reference/kotlin/androidx/constraintlayout/core/SolverVariable!,

ratio: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html

)`

Create a constraint to express `A = B + (C - D)` \* ratio We use this for ratio, where for example `Right = Left + (Bottom - Top) * percent`
`https://developer.android.com/reference/kotlin/androidx/constraintlayout/core/ArrayRow!` `https://developer.android.com/reference/kotlin/androidx/constraintlayout/core/ArrayRow#createRowEqualDimension(float,float,float,androidx.constraintlayout.core.SolverVariable,int,androidx.constraintlayout.core.SolverVariable,int,androidx.constraintlayout.core.SolverVariable,int,androidx.constraintlayout.core.SolverVariable,int)(

currentWeight: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html,

totalWeights: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html,

nextWeight: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html,

variableStartA: https://developer.android.com/reference/kotlin/androidx/constraintlayout/core/SolverVariable!,

marginStartA: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html,

variableEndA: https://developer.android.com/reference/kotlin/androidx/constraintlayout/core/SolverVariable!,

marginEndA: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html,

variableStartB: https://developer.android.com/reference/kotlin/androidx/constraintlayout/core/SolverVariable!,

marginStartB: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html,

variableEndB: https://developer.android.com/reference/kotlin/androidx/constraintlayout/core/SolverVariable!,

marginEndB: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html

)` `https://developer.android.com/reference/kotlin/androidx/constraintlayout/core/ArrayRow!` `https://developer.android.com/reference/kotlin/androidx/constraintlayout/core/ArrayRow#createRowEqualMatchDimensions(float,float,float,androidx.constraintlayout.core.SolverVariable,androidx.constraintlayout.core.SolverVariable,androidx.constraintlayout.core.SolverVariable,androidx.constraintlayout.core.SolverVariable)(

currentWeight: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html,

totalWeights: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html,

nextWeight: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html,

variableStartA: https://developer.android.com/reference/kotlin/androidx/constraintlayout/core/SolverVariable!,

variableEndA: https://developer.android.com/reference/kotlin/androidx/constraintlayout/core/SolverVariable!,

variableStartB: https://developer.android.com/reference/kotlin/androidx/constraintlayout/core/SolverVariable!,

variableEndB: https://developer.android.com/reference/kotlin/androidx/constraintlayout/core/SolverVariable!

)` `https://developer.android.com/reference/kotlin/androidx/constraintlayout/core/ArrayRow!` `https://developer.android.com/reference/kotlin/androidx/constraintlayout/core/ArrayRow#createRowEquals(androidx.constraintlayout.core.SolverVariable,int)(variable: https://developer.android.com/reference/kotlin/androidx/constraintlayout/core/SolverVariable!, value: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html)` `https://developer.android.com/reference/kotlin/androidx/constraintlayout/core/ArrayRow!` `https://developer.android.com/reference/kotlin/androidx/constraintlayout/core/ArrayRow#createRowEquals(androidx.constraintlayout.core.SolverVariable,androidx.constraintlayout.core.SolverVariable,int)(

variableA: https://developer.android.com/reference/kotlin/androidx/constraintlayout/core/SolverVariable!,

variableB: https://developer.android.com/reference/kotlin/androidx/constraintlayout/core/SolverVariable!,

margin: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html

)` `https://developer.android.com/reference/kotlin/androidx/constraintlayout/core/ArrayRow!` `https://developer.android.com/reference/kotlin/androidx/constraintlayout/core/ArrayRow#createRowGreaterThan(androidx.constraintlayout.core.SolverVariable,int,androidx.constraintlayout.core.SolverVariable)(a: https://developer.android.com/reference/kotlin/androidx/constraintlayout/core/SolverVariable!, b: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html, slack: https://developer.android.com/reference/kotlin/androidx/constraintlayout/core/SolverVariable!)` `https://developer.android.com/reference/kotlin/androidx/constraintlayout/core/ArrayRow!` `https://developer.android.com/reference/kotlin/androidx/constraintlayout/core/ArrayRow#createRowGreaterThan(androidx.constraintlayout.core.SolverVariable,androidx.constraintlayout.core.SolverVariable,androidx.constraintlayout.core.SolverVariable,int)(

variableA: https://developer.android.com/reference/kotlin/androidx/constraintlayout/core/SolverVariable!,

variableB: https://developer.android.com/reference/kotlin/androidx/constraintlayout/core/SolverVariable!,

slack: https://developer.android.com/reference/kotlin/androidx/constraintlayout/core/SolverVariable!,

margin: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html

)` `https://developer.android.com/reference/kotlin/androidx/constraintlayout/core/ArrayRow!` `https://developer.android.com/reference/kotlin/androidx/constraintlayout/core/ArrayRow#createRowLowerThan(androidx.constraintlayout.core.SolverVariable,androidx.constraintlayout.core.SolverVariable,androidx.constraintlayout.core.SolverVariable,int)(

variableA: https://developer.android.com/reference/kotlin/androidx/constraintlayout/core/SolverVariable!,

variableB: https://developer.android.com/reference/kotlin/androidx/constraintlayout/core/SolverVariable!,

slack: https://developer.android.com/reference/kotlin/androidx/constraintlayout/core/SolverVariable!,

margin: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html

)` `https://developer.android.com/reference/kotlin/androidx/constraintlayout/core/ArrayRow!` `https://developer.android.com/reference/kotlin/androidx/constraintlayout/core/ArrayRow#createRowWithAngle(androidx.constraintlayout.core.SolverVariable,androidx.constraintlayout.core.SolverVariable,androidx.constraintlayout.core.SolverVariable,androidx.constraintlayout.core.SolverVariable,float)(

at: https://developer.android.com/reference/kotlin/androidx/constraintlayout/core/SolverVariable!,

ab: https://developer.android.com/reference/kotlin/androidx/constraintlayout/core/SolverVariable!,

bt: https://developer.android.com/reference/kotlin/androidx/constraintlayout/core/SolverVariable!,

bb: https://developer.android.com/reference/kotlin/androidx/constraintlayout/core/SolverVariable!,

angleComponent: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html

)`

Create a constraint to express At + (Ab-At)/2 = Bt + (Bb-Bt)/2 - angle
`https://developer.android.com/reference/kotlin/androidx/constraintlayout/core/SolverVariable!` `https://developer.android.com/reference/kotlin/androidx/constraintlayout/core/ArrayRow#getKey()()` `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` `https://developer.android.com/reference/kotlin/androidx/constraintlayout/core/ArrayRow#initFromRow(androidx.constraintlayout.core.LinearSystem.Row)(row: https://developer.android.com/reference/kotlin/androidx/constraintlayout/core/LinearSystem.Row!)`

Used to initiate a goal from a given row (to see if we can remove an extra var)
`https://developer.android.com/reference/kotlin/androidx/constraintlayout/core/SolverVariable!` `https://developer.android.com/reference/kotlin/androidx/constraintlayout/core/ArrayRow#pickPivot(androidx.constraintlayout.core.SolverVariable)(exclude: https://developer.android.com/reference/kotlin/androidx/constraintlayout/core/SolverVariable!)` `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` `https://developer.android.com/reference/kotlin/androidx/constraintlayout/core/ArrayRow#reset()()` `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` `https://developer.android.com/reference/kotlin/androidx/constraintlayout/core/ArrayRow#updateFromFinalVariable(androidx.constraintlayout.core.LinearSystem,androidx.constraintlayout.core.SolverVariable,boolean)(

system: https://developer.android.com/reference/kotlin/androidx/constraintlayout/core/LinearSystem!,

variable: https://developer.android.com/reference/kotlin/androidx/constraintlayout/core/SolverVariable!,

removeFromDefinition: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html

)` `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` `https://developer.android.com/reference/kotlin/androidx/constraintlayout/core/ArrayRow#updateFromSynonymVariable(androidx.constraintlayout.core.LinearSystem,androidx.constraintlayout.core.SolverVariable,boolean)(

system: https://developer.android.com/reference/kotlin/androidx/constraintlayout/core/LinearSystem!,

variable: https://developer.android.com/reference/kotlin/androidx/constraintlayout/core/SolverVariable!,

removeFromDefinition: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html

)` `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` `https://developer.android.com/reference/kotlin/androidx/constraintlayout/core/ArrayRow#updateFromSystem(androidx.constraintlayout.core.LinearSystem)(system: https://developer.android.com/reference/kotlin/androidx/constraintlayout/core/LinearSystem!)`

### Inherited properties

From [androidx.constraintlayout.core.ArrayRow](https://developer.android.com/reference/kotlin/androidx/constraintlayout/core/ArrayRow) `https://developer.android.com/reference/kotlin/androidx/constraintlayout/core/ArrayRow.ArrayRowVariables!` `https://developer.android.com/reference/kotlin/androidx/constraintlayout/core/ArrayRow#variables()`

## Public constructors

### PriorityGoalRow

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

```
PriorityGoalRow(cache: Cache!)
```

## Public functions

### addError

```
fun addError(error: SolverVariable!): Unit
```

### addError

```
abstract fun addError(variable: SolverVariable!): Unit
```

### clear

```
fun clear(): Unit
```

### getPivotCandidate

```
fun getPivotCandidate(system: LinearSystem!, avoid: BooleanArray<Boolean>!): SolverVariable!
```

### initFromRow

```
abstract fun initFromRow(row: LinearSystem.Row!): Unit
```

### isEmpty

```
fun isEmpty(): Boolean
```

### toString

```
fun toString(): String!
```

### updateFromFinalVariable

```
abstract fun updateFromFinalVariable(
    system: LinearSystem!,
    variable: SolverVariable!,
    removeFromDefinition: Boolean
): Unit
```

### updateFromRow

```
abstract fun updateFromRow(system: LinearSystem!, definition: ArrayRow!, b: Boolean): Unit
```

### updateFromRow

```
fun updateFromRow(
    system: LinearSystem!,
    definition: ArrayRow!,
    removeFromDefinition: Boolean
): Unit
```