Android: AppWidget avec vue personnalisée ne fonctionne pas
Je suis entrain de créer un appwidget composé d'une seule vue personnalisée appelé Foo.
xml/widget.xml:
<appwidget-provider
xmlns:android="http://schemas.android.com/apk/res/android"
android:minWidth="294dp"
android:minHeight="72dp"
android:updatePeriodMillis="0"
android:initialLayout="@layout/widget_layout">
</appwidget-provider>
mise en page/widget_layout
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<package.name.Foo
android:layout_width="fill_parent"
android:layout_height="fill_parent"
/>
</LinearLayout>
Foo:
public class Foo extends View
{..}
J'ai testé la Foo
vue dans des conditions normales application android, et il fonctionne parfaitement. Cependant, lorsque j'essaie de lancer le widget-je obtenir "error while loading widget"
. Quand j'enlève le Foo
vue depuis le widget, tout va bien. Donc, il a quelque chose à voir avec la Foo
vue.
Je ne peux malheureusement pas être plus précis erreurs dans DDMS, car je ne sais pas d'une façon de déboguer des widgets.
Je voudrais savoir si il est en effet possible d'utiliser votre propre point de vue dans un app-widget?
Suis-je en train de faire quelque chose de mal ici?
source d'informationauteur Peterdk
Vous devez vous connecter pour publier un commentaire.
J'ai quitté ma vue personnalisée intacte, et a mis en œuvre une ImageView pour mon widget, puis rendu la vue à l'aide de la getDrawingCache()
Une autre façon de le faire sans l'aide de
getDrawingCache()
:J'ai utilisé cache pas pour redessiner tous la vue, de sorte que je ne pouvais pas utiliser le code ci-dessus.
Et je trouve cela plus élégant.
J'espère qu'elle pourra être utile à quelqu'un.
voir le la documentation.
AnalogClock, Bouton, Chronomètre, ImageButton, ImageView, ProgressBar et TextView sont pris en charge les points de vue. Pour les mises en page, vous devez utiliser FrameLayout, LinearLayout ou RelativeLayout.
Vous ne pouvez pas avoir TOUT affichage personnalisé utilisé dans le widget. En fait, même ceux android-predfined points de vue ne sont pas tous pris en charge.
Pour la liste détaillée des prises en charge des widgets/layouts, veuillez lire la la documentation. Rien d'autre que ceux qui figurent ne peuvent pas être placés dans les widgets.