将clickable()设置为false在Android ChromeCast上不起作用;s MediaRouterButton
我的android设备中有一个chromecast的MediaRouterButton。 现在我想以编程方式启用/禁用其单击,因此我有这样一行代码:将clickable()设置为false在Android ChromeCast上不起作用;s MediaRouterButton,android,android-view,chromecast,android-touch-event,Android,Android View,Chromecast,Android Touch Event,我的android设备中有一个chromecast的MediaRouterButton。 现在我想以编程方式启用/禁用其单击,因此我有这样一行代码: mediaButton.setClickable( false ). 但是它没有禁用点击,chromecast对话框仍然会显示 我试着检查源代码,它会覆盖performClick()方法,但是在我为这个方法设置断点并进行调试之后,我在堆栈中除了这个performClick()之外找不到其他方法 谁能告诉我为什么会这样 最后,我有一个工作要做 只需
mediaButton.setClickable( false ).
但是它没有禁用点击,chromecast对话框仍然会显示
我试着检查源代码,它会覆盖performClick()方法,但是在我为这个方法设置断点并进行调试之后,我在堆栈中除了这个performClick()之外找不到其他方法
谁能告诉我为什么会这样 最后,我有一个工作要做 只需重写MediaRouteButton,重写其performClick()方法,插入您想要执行的逻辑
public class CustomizedChromesCastButton extends MediaRouteButton {
private boolean enable = true;
public CustomizedChromesCastButton( Context context ){
super( context );
}
public CustomizedChromesCastButton(Context context, AttributeSet attrs){
super( context, attrs );
}
public CustomizedChromesCastButton(Context context, AttributeSet attrs, int defStyleAttr){
super( context, attrs, defStyleAttr );
}
public void setCastEnable( boolean enable ){
this.enable = enable;
}
public boolean performClick(){
if( enable ){
return super.performClick();
}
else {
return false;
}
}
}
使用setEnabled()而不是setClickable(),它不起作用。。。mediaroutebutton实际上是直接从视图扩展而不是从按钮扩展。您试图做的是违背强制转换按钮的预期设计,您的用例是什么?当我滑动主Imageview时,我想设置工具栏中所有按钮的alpha值并禁用它们,我想知道为什么会发生这种情况?按钮只是从视图类扩展而来,为什么我不能将其设置为不可点击?谢谢你,兄弟