setStateListAnimator(null) 后无法获得 onClick() 回调
Can't get onClick() call back after setStateListAnimator(null)
标题很漂亮self-explanatory,我有个按钮叫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
中出现 water-drop-ripple-effect?
If not, then is there any other way of stopping stateListAnimator
which causes a water-drop-ripple-effect in Button
when clicked?
首先,我不认为 stateListAnimator
与涟漪效应有某种联系。 Ripple 只是设置为 Button
的背景,而 stateListAnimator
指定根据视图的当前状态执行什么动画。查看 StateListDrawable
中的状态。
为了完全隐藏波纹效果,请将此应用到您的 activity 样式:
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
...
<item name="selectableItemBackground">@null</item>
<item name="selectableItemBackgroundBorderless">@null</item>
</style>
标题很漂亮self-explanatory,我有个按钮叫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
中出现 water-drop-ripple-effect?
If not, then is there any other way of stopping
stateListAnimator
which causes a water-drop-ripple-effect inButton
when clicked?
首先,我不认为 stateListAnimator
与涟漪效应有某种联系。 Ripple 只是设置为 Button
的背景,而 stateListAnimator
指定根据视图的当前状态执行什么动画。查看 StateListDrawable
中的状态。
为了完全隐藏波纹效果,请将此应用到您的 activity 样式:
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
...
<item name="selectableItemBackground">@null</item>
<item name="selectableItemBackgroundBorderless">@null</item>
</style>