7
votes

Erreur GridView en espacement horizontal

J'ai placé une grille de grille dans mon fichier de mise en page XML.

Il est affiché comme je le voulais dans l'anglais (LTR) sur API 17-21 Mais quand je sortirai la langue à l'arabe (RTL), l'horizontalsPaçage est ignoré sur API 17-19 mais sur API 21, il est affiché comme je le voulais.

Le même comportement s'est produit sur des émulateurs et des appareils Android réels. < / p>

code XML: xxx

code XML pour les éléments: xxx

voici mes captures d'arabe (RTL) UI:

Notez l'espacement horizontal dans la première capture d'écran

 Entrez la description de l'image ici


0 commentaires

4 Réponses :


4
votes

Essayez ceci, je ne sais pas pourquoi mais a travaillé pour moi xxx


3 commentaires

Mais ce n'est pas correct ... ça marche en dessous de 21 ans mais pas en 21 ans et plus. Il crée un problème pour 21 ans et plus, essayant de résoudre avec le périphérique de contrôle API


J'ai également connu ce problème lorsque je réglais l'espacement horizontal dans GridView pour la direction RTL. Vérification de la direction de la mise en page et de la vérification de l'API semble fonctionner :).


Cette approche ne fonctionnera que si vous ne n'avez rien à gauche de chaque article. Sinon, il va couper votre image / text / wtv, il s'agit simplement d'appuyer sur l'élément à gauche. Si cela ne vous apporte aucun problème, il suffit de vérifier que la version API et la direction de la mise en page fonctionneront parfaitement.



3
votes

J'ai eu le même problème et j'ai essayé de le résoudre, mais cela ne fonctionne tout simplement pas comme prévu. Si vous avez RTL défini dans votre manifeste, définissez la direction de la disposition de la grille de la GridView sur LRT et Rotationy par 180.

Voici une explication détaillée: Android Grid View Place Articles de droite à gauche


2 commentaires

Cela devrait fonctionner pour GridView avec une image uniquement, mais s'il y a du texte aussi, cela pourrait être reflété. Donc, l'élément de grille doit également être tourné à 180.


Je viens de définir la direction sur grid.setlayoutdirection (vue.layout_direction_ltr) et cela a fonctionné.



0
votes

Le problème peut être corrigé en définissant Android: LayoutDirection = "ltr" dans la disposition contenant le gridview , vous devez créer 2 aménagements, un pour rtl et un autre pour ltr et enregistrez votre adaptateur que vous devez utiliser.


0 commentaires

-1
votes

J'ai essayé ce code

en XML: xxx

en java: xxx


0 commentaires