Итак, у меня есть пользовательская клавиатура, и у меня есть анимация расширения для каждой из кнопок на ней, но когда нажата кнопка, некоторая анимация расширения кнопки происходит ниже других кнопок: ![enter image description here](https://i.stack.imgur.com/zTlRu.png)
Вот так выглядит моя кнопка.
<Button
android:text="т"
android:layout_width="0dp"
android:background="@drawable/cell_keyboard"
android:textColor="@color/keyboard_text_color"
android:layout_height="@dimen/keyboard_button_height"
android:onClick="@{(v)-> onClickListener.onKeyboardInput(v)}"
android:stateListAnimator="@animator/button_large_expand_animation"
android:id="@+id/button7"
app:layout_constraintStart_toEndOf="@+id/button4" app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintEnd_toStartOf="@+id/button12"
app:layout_constraintTop_toTopOf="@+id/button13"
app:layout_constraintBottom_toBottomOf="@+id/button13" android:textAlignment="center"/>
А это анимация:
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:state_enabled="true"
android:state_pressed="true">
<set>
<objectAnimator
android:duration="100"
android:propertyName="scaleX"
android:valueTo="1.5"
android:valueType="floatType" />
<objectAnimator
android:duration="100"
android:propertyName="scaleY"
android:valueTo="1.5"
android:valueType="floatType" />
</set>
</item>
<!-- base state -->
<item android:state_enabled="true">
<set>
<objectAnimator
android:duration="200"
android:propertyName="scaleX"
android:startDelay="100"
android:valueTo="1"
android:valueType="floatType" />
<objectAnimator
android:duration="200"
android:propertyName="scaleY"
android:startDelay="100"
android:valueTo="1"
android:valueType="floatType" />
</set>
</item>
<item>
<set>
<objectAnimator
android:duration="0"
android:propertyName="scaleX"
android:valueTo="1"
android:valueType="floatType" />
<objectAnimator
android:duration="0"
android:propertyName="scaleY"
android:valueTo="1"
android:valueType="floatType" />
</set>
</item>
Что я пробовал:
button.rootView.bringToFront()
button.rootView.requestFocusFromTouch()
Я понятия не имею, как это исправить, любая помощь будет оценена.
EDIT
Хорошо, небольшое обновление я заменил
button.rootView.bringToFront()
с button.bringToFront()
, и это работает, НО вывод на фронт происходит после того, как анимация происходит. Поэтому при первом нажатии кнопки анимация находится ниже других элементов, но при повторном нажатии она находится над элементами, поскольку я использую
android:stateListAnimator="@animator/button_large_expand_animation"
Ребята, у вас есть идея, как это сделать, не добавляя слушателя анимации ко всем кнопкам и не вызывая метода takeToFront () в onAnimationStart ().