Ответ
Да, был случай при реализации сложной анимации с MotionLayout. Нужно было синхронизировать несколько анимаций с разными задержками и кривыми Безье. После нескольких неудачных попыток понял, что проблема в конфликте атрибутов в XML. Решение:
<!-- Было -->
<ConstraintSet android:id="@+id/start">
<Constraint android:id="@+id/button">
<CustomAttribute .../>
</Constraint>
</ConstraintSet>
<!-- Стало: вынес атрибуты в отдельный ConstraintSet -->
<ConstraintSet android:id="@+id/custom_attrs">
<Constraint android:id="@+id/button">
<CustomAttribute .../>
</Constraint>
</ConstraintSet>
Вывод: иногда нужно пересматривать архитектуру даже мелких компонентов.
Ответ 18+ 🔞
А, блядь, вспомнил, как я с этой ебушкой-воробушкой под названием MotionLayout воевал! Ситуация была пиздец — нужно было несколько анимаций синхронизировать, чтобы они как по нотам шли, с разными задержочками и кривыми Безье, которые выглядят как хуй с горы, если их неправильно настроить.
Потратил я, сука, овердохуища времени, тупо меняя цифры в XML, а оно нихуя не работает. То одна анимация упрется, то другая начнёт дергаться, как мартышлюшка на кофеине. Подозрение ёбать чувствую — что-то тут нечисто.
И знаешь, в чём оказалась засада? В этой хитрой жопе под названием конфликт атрибутов в XML! Я тупо нагородил всё в одном ConstraintSet, а оно, блядь, глохло и не понимало, чего от него хотят. Сам от себя охуел, когда догадался.
Решение оказалось проще, чем кажется — вынести эти ёбаные кастомные атрибуты в отдельный ConstraintSet. Смотри, как было и как стало:
<!-- Было — тут всё в кучу, пиздопроебибна архитектура -->
<ConstraintSet android:id="@+id/start">
<Constraint android:id="@+id/button">
<CustomAttribute .../>
</Constraint>
</ConstraintSet>
<!-- Стало — развел по разным углам, как кошек дерущихся -->
<ConstraintSet android:id="@+id/custom_attrs">
<Constraint android:id="@+id/button">
<CustomAttribute .../>
</Constraint>
</ConstraintSet>
И всё, блядь, заработало! Как будто хуй с винтом выкрутили. Вывод простой, но важный: иногда нужно остановиться, посмотреть на эту мудню и пересмотреть архитектуру, даже если речь о, казалось бы, мелких компонентах. А то так и будешь биться головой об стену, пока не поймёшь, что проблема не в кривых Безье, а в том, как ты всё организовал. Э, бошка, думай иногда!