Вариант 1
Вместо использования parent
вы можете использовать идентификатор родительского представления (сам ConstraintLayout), таким образом вы можете поменять только идентификатор с ресурсом, зависящим от конфигурации. Скажем, ваш макет выглядит так:
<android.support.constraint.ConstraintLayout
android:id="@+id/rootView"
...
>
<View
android:id="@+id/someView"
...
/>
<View
...
app:layout_constraintTop_toTopOf="@id/myAnchorView"/>
</android.support.constraint.ConstraintLayout>
Затем вы можете определить 2 разных идентификатора в вашей конфигурации, например, телефон:
<resources>
<item name="anchorView" type="id">@id/rootView</item>
</resources>
И планшет:
<resources>
<item name="anchorView" type="id">@id/someView</item>
</resources>
Вариант 2
Определите стиль для вашего представления и имейте 2 версии этого стиля, одну для телефона:
<style name="MyView">
<item name="layout_constraintTop_toTopOf">parent</item>
</style>
и один для планшета:
<style name="MyView">
<item name="layout_constraintTop_toTopOf">@+id/viewA</item>
</style>