所以我有一个自定义键盘,并且每个按钮都有扩展动画,但是当按下一个按钮时,某些按钮的扩展动画发生在其他按钮的下方:
这是我的按钮的外观。
<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()
我不知道如何解决此问题,将不胜感激。
编辑
好的我更新了一点
button.rootView.bringToFront()
与button.bringToFront()
和android:stateListAnimator="@animator/button_large_expand_animation"
一起使用,但在动画结束后才出现。因此,当您第一次单击该按钮时,动画位于其他元素下方,但是再次单击时,动画位于这些元素上方,因为我正在使用
m=df1[['Feature']].merge(df2[['Feature']],how='outer',indicator=True)
你们是否有一个想法,如何在不向所有按钮添加动画侦听器和在onAnimationStart()中执行BringToFront()的情况下执行此操作。
答案 0 :(得分:0)
尝试将elevation
objectAnimator
添加到您的stateListAnimator
:
(提升状态的示例值;您可能需要调整valueTo
值)
<objectAnimator
android:duration="200"
android:propertyName="elevation"
android:valueTo="6dp"
android:valueType="floatType" />