2011-07-22 3 views
2

J'ai un PopupWindow que je me sers dans mon Activity, et tout fonctionne bien sauf pour le rembourrage des éléments contenus dans le PopupWindow - il est beaucoup trop grand - en prenant littéralement la plupart des petits espace PopupWindows . Voici le XML que j'utilise pour définir le PopupWindow:de popupWindow - trop grand

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout 
xmlns:android="http://schemas.android.com/apk/res/android" 
android:orientation="vertical" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:background="@drawable/homescreen_popup_bg_levels"> 
<TextView 
    android:id="@+id/x" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:textColor="#FF000000" 
    android:textSize="12dp"> 
</TextView> 
<TextView 
    android:id="@+id/y" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:textSize="12dp" 
    android:textColor="#FF000000"> 
</TextView> 
</LinearLayout> 

Voici une capture d'écran du PopupWindow: Toute idée pourquoi le texte est rembourré vers le bas et à droite tant

enter image description here

? J'ai essayé d'ajuster le remplissage XML, etc. mais pas de chance.

Répondre

1

Compris. Le problème était en effet le rembourrage de l'image de 9 patchs - ne comprenant aucun ne signifiait que le système d'exploitation devinait où autoriser le texte, et poussait ce texte vers le centre. La définition de l'élément de remplissage des images de 9 patch utilisées pour l'arrière-plan a résolu le problème. Oh, et autre chose à noter ... lorsque vous utilisez une liste de niveaux, il semble qu'Android ne regarde que le remplissage de la première image chargée, puis l'applique à chaque image. Comme j'utilise les niveaux pour contenir quatre images asymétriques (appel en haut à gauche, à droite, en bas à gauche, à droite), toutes les images obtiennent le même remplissage, pixel par pixel, que le premier qui est chargé.

Pour résoudre ce problème, je définis maintenant simplement l'image d'arrière-plan de manière dynamique, plutôt que de changer le niveau.

0

Je suppose que votre problème est le drawable homecreen_popup_bg_levels.

Essayez de le supprimer et voyez ce qui se passe. Si c'est le problème, créez un correctif 9 correct.

+0

Hmm, eh bien l'image que vous voyez ci-dessus est un patch 9 sans rembourrage, juste un point au milieu à gauche, le haut du milieu à étirer. Il y a quatre 'niveaux pour le dessin (les orientations de haut-gauche, haut-droit, bas-gauche, bas-droite, et toutes les images sont les mêmes en termes d'être un patch 9 et n'ayant pas de boîte de rembourrage .. Peut-être que je dois en définir un? –