8
votes

La colonne GIDLAYOUT va au-delà de ses limites

J'essaie de faire une forme similaire à la grille, semblable à L'exemple sur le blog officiel des développeurs Android.

Voici ma mise en page: xxx

ma colonne de gauche (texte statique , aligné à droite) fonctionne bien. Il aligne le texte à droite et la largeur dépend de la rangée la plus large.

Cependant, la colonne de droite semble être trace en dehors des limites de la gridlayout.

aperçu de la mise en page avec gridlayout sélectionné

sur cette image, la boîte bleue est la limite de la Disposition de la grille. Vous pouvez déjà voir le problème dans la barre verte en haut. Le côté droit est censé s'arrêter aux limites de la gridlayout (comme le côté gauche est), mais pour une raison quelconque, il se passe bien.

 Aperçu de la mise en page avec la colonne de droite sélectionnée

La case bleue dans cette image est la limite de l'editext (il est défini sur WraP_Content). Cependant, la boîte aqua-colorée est la limite dans laquelle il est autorisé à se développer. Lorsque je tape beaucoup de caractères dans l'editext, il dépasse les limites de la gridlayout et même au-delà du bord de l'écran de téléphone!

 capture d'écran

est-ce un bug de gridlayout? Ou est-ce que je manque quelque chose?


1 commentaires

Avez-vous trouvé une solution encore?


4 Réponses :


1
votes

Vous pouvez limiter EdittText à une seule ligne.

<EditText 
...
android:singleLine="true"
android:lines="1"
android:maxLines="1"
android:hint="to"></EditText>


1 commentaires

Il prolonge toujours les limites à droite, donc cela ne résout pas le problème.



0
votes

définitivement impair. Que se passe-t-il si vous contraindrez la largeur de l'editext sur "match_parent" au lieu de "Wrap_Content" (qui devrait contraindre sa largeur horizontale à la cellule de la grille)?

IE P>

android:layout_marginRight="20dp"


2 commentaires

Changer à Match_Parent a toujours le même problème de dépassement, la seule différence est qu'elle commence à être plus large que l'écran.


La marge réalise, mais elle est hacky et devra être vérifiée pour chaque traduction des chaînes dans la première colonne. Certainement pas une bonne solution.



7
votes

C'est 'normal' em> comportement de gridlayout code>.

Heureusement, il y a une nouvelle version de Gridlayout code>, qui a été ajoutée avec API 21. Merci de ce fait, vous pouvez faire gridlayout code> héberge les enfants à son Soit une largeur ou une hauteur forte> selon comme son orientation. P>

Pour connaître les détails Voir Documentation forte>, en particulier à Vue d'ensemble de la classe -> Distribution d'espace en excès em>. Vous pouvez trouver des informations sur l'utilisation gridlayout code> dans la façon dont vous voulez. P>


Conseil: strong> P>

Don ' t oublier que d'utiliser le nouveau gridlayout code>, vous devez Ajoutez-le sous forme de bibliothèque de support et dans XML code> S UTILISER: P>

<GridLayout ... > 


1 commentaires

Ajout du support GIDLAYOUT n'apporte pas de solution. Existe-t-il des attributs spécifiques que nous devrions définir?



2
votes

J'ai trouvé Cette réponse pour être utile. En outre, la réponse de paulina_glab d'utiliser au lieu de - merci!

En particulier ces attributs sur chaque cellule: < / p> xxx

espère qu'il aide.


0 commentaires