Измените layout_width
вашего TextInputLayout
на 0dp
и добавьте к нему также этот атрибут:
android:layout_weight="1"
Что сейчас происходит, так это то, что ваш TextInputLayout имеет ширину match_parent
. Для этого нужно заполнить все оставшееся пространство родителя (это несколько уникально для LinearLayout). Когда ваш Switch
слева, он получает достаточно места для него, а затем TextInputLayout берет на себя все остальное. Однако, когда коммутатор находится справа, TextInputLayout сначала занимает все пространство!
Использование веса вместо этого гарантирует, что другие компоненты получат необходимое им пространство до того, как взвешенный компонент получит дополнительное пространство.