Если я правильно понял, то, чего вы хотите добиться, это переместить кнопку из одной стороны в другую в текстовом представлении. Конечно, вы можете сделать это программно, просто изменив ограничения, которые вы применили к кнопке. Это, безусловно, будет работать, но ремонтопригодность этого решения низкая по сравнению с другими решениями.
Я предлагаю использовать ConstraintSets. ConstraintSets - это набор правил, ограничений. Вы уже определили набор ограничений в этом файле макета. Вы можете продублировать этот точный файл макета, изменив его имя и применив другие ограничения: у вас будет новый набор ограничений. Обратите внимание, что вам придется использовать те же идентификаторы, чтобы заставить ConstraintSets работать. Это обязательно.
После создания второго набора вы можете просто переключиться с одного на другой, применив выбранный набор к корневому ConstraintLayout. Пожалуйста, ознакомьтесь с официальной документацией для полного примера: https://developer.android.com/reference/android/support/constraint/ConstraintSet
EDIT:
Я добавлю пример. Начнем с первого макета XML, назовем его R.layout.first, создадим второй, назовем его R.layout.second.
Чтобы программно переключиться с первого на второе, вам нужно сделать что-то похожее на это:
ConstraintSet firstCS = new ConstraintSet(); //this will reference the first set
ConstraintSet secondCS = new ConstraintSet(); // this will reference the second set
ConstraintLayout constraintLayout = findViewByID(R.id.frameLayout); //this will reference the root constraint layout in your layout XML
firstCS.clone(constraintLayout); // you will get the first set directly from the root layout
secondCS.clone(getContext(), R.layout.second); //and you will clone the second set from your layout XML
secondCS.applyTo(constraintLayout); // this will apply the second set