Java 禁用按钮单击动画而不禁用设置启用(false)
我有一个Java 禁用按钮单击动画而不禁用设置启用(false),java,android,button,onclick,Java,Android,Button,Onclick,我有一个LienarLayout,里面有一个按钮。我在按钮和线性布局上都有一个OnClickListener。在某些时候,我想禁用按钮,并将onClick事件传递给父线性布局。我发现您可以通过设置按钮.setClickable(flase)来实现这一点。它工作正常,LinearLayout获得单击,但是按钮的单击动画仍在播放。更糟糕的是,如果我单击未绘制按钮的线性布局,按钮单击动画仍会播放 如果有人知道我怎样才能达到我想要的,我将不胜感激 注意:我不想使用按钮。setEnabled(false)
LienarLayout
,里面有一个按钮。我在按钮和线性布局上都有一个OnClickListener
。在某些时候,我想禁用按钮
,并将onClick
事件传递给父线性布局
。我发现您可以通过设置按钮.setClickable(flase)
来实现这一点。它工作正常,LinearLayout
获得单击,但是按钮的单击动画仍在播放。更糟糕的是,如果我单击未绘制按钮的线性布局
,按钮单击动画仍会播放
如果有人知道我怎样才能达到我想要的,我将不胜感激
注意:我不想使用按钮。setEnabled(false)
的原因是我不想让按钮看起来被禁用。我还希望能够根据需要启用/禁用按钮的可点击状态。因此,基本上我希望按钮有时处于活动状态,然后在其他时间单击以传递到LinearLayout
代码-xml:
<LinearLayout
android:id="@+id/linearLayout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="?android:attr/selectableItemBackground">
<Button
android:id="@+id/button"
style="?android:attr/buttonBarButtonStyle"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:text="button"/>
</LinearLayout>
单击之前:
单击线性布局时:
您可以简单地为背景设置颜色,这样动画就不会出现
android:background="@android:color/white"
当您想要返回可单击动画时,请使用此选项
TypedValue outValue = new TypedValue();
getContext().getTheme().resolveAttribute(android.R.attr.selectableItemBackground, outValue, true);
yourButton.setBackgroundResource(outValue.resourceId);
这将解决此问题。当您不想实现单击时,可以使用按钮。setOnClickListener(null)
并可以根据需要在将来的任何时候设置侦听器。我可以建议一些解决方法:1)使用触摸侦听器而不是单击。2) 将静态图像背景设置为按钮(不可绘制状态),3)在按钮上放置一些可单击的视图,这样它将捕获所有单击。我如何在使其再次可单击后将其恢复到正常状态?
TypedValue outValue = new TypedValue();
getContext().getTheme().resolveAttribute(android.R.attr.selectableItemBackground, outValue, true);
yourButton.setBackgroundResource(outValue.resourceId);