标题不言自明,我有一个按钮,我称之为setStateListAnimator(null);
。我还注册了OnClickListener
回调。问题是每当我打电话setStateListAnimator(null)
我都没有收到onClick()
的回电。
<Button android:id="@+id/urlSubmittButton"
android:layout_below="@id/editLyout"
android:layout_width="150dp"
android:layout_height="45dp"
android:text="Add"
android:layout_marginTop="10dp"
android:textSize="18sp"
android:layout_centerHorizontal="true"
android:gravity="center"
android:padding="5dp" />
在我的Fragment
:
urlSubmitButton = (Button) mView.findViewById(R.id.urlSubmittButton);
urlSubmitButton.setClickable(true);
urlSubmitButton.setEnabled(true);
urlSubmitButton.setOnClickListener(this);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
urlSubmitButton.setStateListAnimator(null);
}
如您所见,我尝试将Button
设置为可单击并启用,它不会更改行为。但是,简单地注释该行代码即可获得魅力。
这是 API 24 的预期行为吗?因为到目前为止,我只能在API 24设备中重现此问题。如果没有,那么有没有其他方法可以阻止stateListAnimator
,点击时Button
会产生水滴涟漪效应?
如果没有,那么有没有其他方法可以停止
stateListAnimator
,在点击时会导致Button
的水滴涟漪效应?
首先,我不认为stateListAnimator
与涟漪效应有某种联系。波纹只是设置为Button
的背景,而stateListAnimator
则根据视图的当前状态指定要执行的动画。请参阅StateListDrawable
中的状态。
为了完全隐藏涟漪效应,请将其应用于您的活动风格:
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
...
<item name="selectableItemBackground">@null</item>
<item name="selectableItemBackgroundBorderless">@null</item>
</style>