As you can see from the following excerpt of ConstraintLayout's supported attributes, there is no layout_constraintStart_toCenterX attribute. Thus you cannot directly align the left edge of one view to the center of another view.

<attr name="layout_constraintLeft_toLeftOf" format="reference|enum">...</attr> <attr name="layout_constraintLeft_toRightOf" format="reference|enum">...</attr> <attr name="layout_constraintRight_toLeftOf" format="reference|enum">...</attr> <attr name="layout_constraintRight_toRightOf" format="reference|enum">...</attr> <attr name="layout_constraintTop_toTopOf" format="reference|enum">...</attr> <attr name="layout_constraintTop_toBottomOf" format="reference|enum">...</attr> <attr name="layout_constraintBottom_toTopOf" format="reference|enum">...</attr> <attr name="layout_constraintBottom_toBottomOf" format="reference|enum">...</attr> <attr name="layout_constraintBaseline_toBaselineOf" format="reference|enum">...</attr> <attr name="layout_constraintStart_toEndOf" format="reference|enum">...</attr> <attr name="layout_constraintStart_toStartOf" format="reference|enum">...</attr> <attr name="layout_constraintEnd_toStartOf" format="reference|enum">...</attr> <attr name="layout_constraintEnd_toEndOf" format="reference|enum">...</attr>

But ConstraintLayout is flexible enough to get your view aligned to the center of another view without such an attribute. Even though the solutions is a tad hacky 🙂

Say you have view A and want another view B to left-align to the center of A. To achieve this you can add yet another view C. Align both edges of C to the respective edges of A. C is thus centered to A. Now you can align the left edge of B to the right edge of C. Finally set the visibility of the helper view C to View.GONE - and you are done.

Here's the screen showing it before the view is set to View.GONE :

And this is the desired result after setting the helper view to View.GONE :

Have a look at this gist of the actual layout file. It probably makes the steps more obvious.

Keep in mind: You cannot use a view and simply set it's layout_width and layout_height to 0dp - since this is equivalent to stretching within a ConstraintLayout . To make a view have a height and width of zero, you have to set it's visibility to GONE. That's the only way to achieve this!

I think I mentioned it already in my previous ConstraintLayout article. But maybe it's time to repeat myself: I really like what Google's devs are doing with ConstraintLayout. Keep up the good work 🙂