本文和大家重点学习一下AppWidget开发的概念,在AppWidget开发中我们可以使用button,但是却不能是buttondisable为什么呢?请看本文详细介绍。
AppWidget开发初学指导
在AppWidget开发中我们可以使用button,但是却不能是buttondisable为什么呢
RemoteViews不能控制一个button可用和不可用的状态,但是可以控制它的显示与隐藏
因为我们可以利用这个造假
Java代码
- <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的时候
Java代码
- RemoteViewsremoteView=newRemoteViews(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的时候
Java代码
- 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的隐藏转换造成了视觉的欺骗
【编辑推荐】
- AndroidWidget开发系列解读
- AndroidWidget开发详解
- 全面认识WebWidget开发
- DashBoard的Widget开发指南
- 解析AndroidWidget开发中如何构建Activity类