在AppWidget开发中我们可以使用button,但是却不能是buttondisable为什么呢
RemoteViews不能控制一个button可用和不可用的状态,但是可以控制它的显示与隐藏
因为我们可以利用这个造假
然后呢
<ButtonAndroid:idButtonAndroid:id="@+id/startbutton"
android:text="Start"
android:visibility="visible">
</Button>
<Buttonandroid:idButtonandroid:id="@+id/startbutton_disabled"
android:text="Start"
android:clickable="false"
androidandroid:textColor="#999999"
android:visibility="gone">
</Button>
<Buttonandroid:idButtonandroid:id="@+id/stopbutton"
android:text="Stop"
android:visibility="gone">
</Button>
<Buttonandroid:idButtonandroid:id="@+id/stopbutton_disabled"
android:text="Stop"
android:clickable="false"
androidandroid:textColor="#999999"
android:visibility="visible">
</Button>
当点击startbutton的时候
RemoteViews remoteView=newRemoteView(context.getPackageName(),R.layout.widget);
remoteView.setViewVisibility(R.id.startbutton,View.GONE);
remoteView.setViewVisibility(R.id.startbutton_disabled,View.VISIBLE);
remoteView.setViewVisibility(R.id.stopbutton,View.VISIBLE);
remoteView.setViewVisibility(R.id.stopbutton_disabled,View.GONE);
AppWidgetManager.getInstance(context).updateAppWidget(AppWidgetId,remoteView);
当点击stopbutton的时候
RemoteViewsremoteView=newRemoteViews(context.getPackageName(),R.layout.widget);
remoteView.setViewVisibility(R.id.startbutton,View.VISIBLE);
remoteView.setViewVisibility(R.id.startbutton_disabled,View.GONE);
remoteView.setViewVisibility(R.id.stopbutton,View.GONE);
remoteView.setViewVisibility(R.id.stopbutton_disabled,View.VISIBLE);
AppWidgetManager.getInstance(context).updateAppWidget(AppWidgetId,remoteView);
其实通过一个android:clickable="false",还有buuton的隐藏转换造成了视觉的欺骗