Question

J'ai un (je l'espère) une question relativement simple. Comment puis-je dire Android quelle disposition à l'utilisation pour le portrait et qui mise en page à utiliser pour l'orientation paysage sur mon AppWidget?

Merci à l'avance!

Était-ce utile?

La solution

D'abord, gardez à l'esprit que certains écrans d'accueil (par exemple, Nexus One) ne changent pas d'orientation.

L'approche standard pour avoir différentes mises en page par l'orientation est de mettre la version portrait dans res/layout/, et la version du paysage res/layout-land/, à la fois sous le même nom (par exemple, appwidget.xml). Ensuite, il suffit de se référer par son nom (par exemple, R.layout.appwidget) et Android choisira le fichier en fonction de l'orientation. Cela fonctionne vraiment pour les activités, donc je suppose que cela fonctionne pour les widgets d'applications, mais je ne pense pas que je l'ai fait essayé.

Autres conseils

Pour modifier la largeur et la hauteur du widget application, définir deux tailles de android:layout_height et android:layout_width différents pour votre mise en page (dans le res/layout-port et res/layout-land). Définissez ensuite la plus largeur et la hauteur dans votre appwidgetinfo.xml. De cette façon, l'application widget de change de taille lorsque l'orientation est modifiée et pas seulement lorsque vous ajoutez le widget à l'écran d'accueil.

Si vous utilisez RemoteViews de mettre à jour dynamiquement votre widget, vous pouvez fournir deux RemoteViews séparés à l'appel de la fonction updateAppWidget. Par exemple:

@Override
public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) {
    RemoteViews rvLandscape=new Remoteviews(context,R.layout.widget_landscape);
    rvLandscape.addView(...
    :

    RemoteViews rvPortrait =new Remoteviews(context, R.layout.widget_portrait);
    rvPortrait.addView(...
    :

    appWidgetManager.updateAppWidget(widgetId, new RemoteViews(rvLandscape, rvPortrait));
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top