Je construis un widget pour mon application Android qui aura plusieurs boutons. Basé sur la taille du widget, je veux que la quantité de boutons sur le widget se développe et rétrécisse. C'est ce à quoi on ressemble actuellement dans une vue 4x1: p>
et quand vous le rétrécissez jusqu'à 3x1: p>
est là quand même à masquer dynamiquement le 4ème bouton de la vue 3x1 afin que les 3 autres boutons ne soient pas schérés? Même irait pour un 2x1 ou un 1x1. Toute entrée à ce sujet serait grandement appréciée! P>
Merci! P>
4 Réponses :
Vous pouvez essayer d'écouter le OnAppwidGetOptionSchangned Callback: Cela devrait déclencher chaque fois que la taille de la mise en page change. Cependant, il n'y a vraiment aucun moyen que j'ai vu (en ce moment) de déterminer la quantité réelle de l'immobilier de l'écran Votre widget est en train de prendre, donc il n'y a donc pas de bon moyen de changer la visibilité du bouton en fonction de la taille. P>
à partir de la version 4.1 (niveau d'API 16) Il existe une nouvelle fonction gettappwidgeoptions () qui renvoie un paquet avec des paramètres de dimensionnement. Voir ici . Peut-être que vous pouvez utiliser cela pour ce dont vous avez besoin, mais Afaik il n'y a pas d'option similaire pour les versions inférieures à 4.1. P>
Comme on l'a suggéré, vous n'avez pas d'autre moyen que d'implémenter Pour masquer les boutons lorsque le widget rétrécit, votre widget doit se comporter de la même manière au widget météo donné à titre d'exemple dans le site de design Android, sous le motif " widgets " (appwidgets réellement). Vous montrez moins de boutons car le widget se rétrécit, plus de boutons au fur et à mesure de sa croissance, définissant la visibilité des boutons. P>
p>
dans En fait, lorsque l'utilisateur redimensionne un widget, le système répondra avec un
Plage de taille DP dans laquelle votre widget peut redessiner. Planifier votre
Stratégie de redimensionnement du widget sur des «godets de taille» plutôt que variables
Les dimensions de la grille vous donneront les résultats les plus fiables. P>
blockQuote>
Qu'est-ce qui est vraiment difficile, c'est comment déterminer ces godets em>. Les NewOptions Bundle ont min_width, min_height, max_width et max_height valeurs qui diffèrent sensiblement entre les périphériques, les densités d'écran, les lanceurs, etc. Malheureusement, l'équipe Android ne nous a pas montré comment faire cela, et il y a peu d'échantillons de code de OnAppwidgePtionSchangned code> dans votre fournisseur de widgets - Le niveau d'API <16 utilisateurs n'aura malheureusement pas cette fonctionnalité. P>
OnAppwidGetOptionsChanged code>, à l'aide des valeurs données par le bundle NewOptions, vous devez détecter la variation de la largeur et de la hauteur et de définir les godets de taille forts> comme indiqué dans les documents (de la même page de conception): p>
OnAppwidgePtionSchangned < / code> sur le Web, la plupart d'entre eux très simples. P>
Comme ils ont déjà dit. Vous pouvez utiliser OnAppWidgeoptionsChanged Strong> Donc, ma proposition est de p> 1) Faites différentes mises en page. Avec 3 et 4 boutons. p> 2) Modifiez la base de mise en page sur le nombre de colonnes de widget. p>
Les futurs lecteurs, voir Ceci pour plus d'informations sur les options .getTINT (appwidgetmanager.option_appwidget_min_width); code> retourne.
Bonjour, pourriez-vous s'il vous plaît expliquer pourquoi vous avez fait ce que vous avez fait pour getcellsforsize () code>? Merci
@daka développeur.android.com/guide/practices/ui_guidelines/... déterminer une taille pour votre widget
@Jacktheripper merci :)
Cela pourrait probablement utiliser un certain nettoyage en considérant qu'il ne modifie que la mise en page sur redimensionner au lieu de créer / charger après le redémarrage.
Vous concevez des règles homme!