无法在 setStateListAnimator(null) 后返回 onClick()



标题不言自明,我有一个按钮,我称之为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>

相关内容

  • 没有找到相关文章

最新更新