Extensible affichage de la liste de déplacer le groupe de l'icône de l'indicateur à droite
En ce qui concerne extensible affichage de la liste, l'icône du groupe indicateur est positionné sur le côté gauche, puis-je passer le témoin et l'a placé à la droite? Merci.
ÉDITÉ: Car je ne veux pas étendre la vue, j'ai eu cette solution de contournement d'obtenir la largeur de façon dynamique. Simplement partager ma solution.
Affichage newDisplay = getWindowManager().getDefaultDisplay(); int largeur = newDisplay.getWidth(); newListView.setIndicatorBounds(largeur-50, largeur);
- Ne fonctionne pas sur Nexus 7. Vérifier stackoverflow.com/a/18013962/1188978 avant la mise en œuvre de cette solution.
InformationsquelleAutor exception01 | 2011-04-27
Vous devez vous connecter pour publier un commentaire.
Selon
ExpandableListView
code source, la seule façon de déplacer un indicateur sur le côté droit est de changer ses limites à l'aide deExpandableListView.setIndicatorBounds()
méthode. Vous pouvez calculer lié àonSizeChanged()
méthode, par exemple.onSizeChanged()
méthode. Peut-être, il y a des moyens plus simples de le faire, mais je ne sais pas tout.setIndicatorBounds(int, int) ne fonctionne pas correctement pour Android 4.3.
Ils ont introduit une nouvelle méthode setIndicatorBoundsRelative(int, int) qui fonctionne bien pour 4.3.
La meilleure façon de le faire est en dessous, mais pas pour toutes les Version d'Android Donc utiliser 2ème ou troisième méthode indiquée ci-dessous
ou ceci:
placer l'indicateur à droite de la vue liste, même sur l'appareil et sur l'onglet aussi.
ou vous pouvez le faire dans un postdelayed fil.
setIndicatorBounds()
définit la gauche et la droite les limites des pixels et non pas de la chute. Votre réponse ne fonctionnera pas sur les appareils avec des écrans différents densités. Assurez-vous de convertir votre compensé40
de DP en pixels avant soustraction.Tous les XML solution!
J'ai trouvé une meilleure façon de s'attaquer à ce problème. Cela ne vous oblige pas à jouer avec l'affichage des métriques, pas besoin de programmation pour le pirater.
C'est ce que vous devez faire:
1) définir l'orientation de la page à droite à gauche
2) assurez-vous que votre élément de la liste mise en page comprend ce (oui, vous aurez besoin de mise en page personnalisée):
Et vous êtes bon pour aller!
J'ai essayé à l'aide de setIndicatorBounds et setIndicatorBoundsRelative mais l'icône ne montrant pas aussi beau que prévu. Donc j'ai modifier mon code comme ci-dessous :
créer un groupe de mise en page :
et à l'aide de cette disposition dans la classe d'adaptateur à l'intérieur de getGroupView méthode :
Avec cette méthode, vous pouvez ajuster la position de l'agrandir/réduire l'icône correctement.
espérons que cela aide.
Extensible affichage de la liste de déplacer le groupe de l'icône de l'indicateur à droite
La
setIndicatorBounds(int left, int right)
est utilisé pour définir l'indicateur limites de l'affichage de groupe de la liste extensible vue.FYI: La largeur est égale à la largeur spécifiée dans le setBounds méthode. Ici, dans mon extrait de il est de 35.Autres sage, l'icône est perturbé. Pour plus de détails, vous pouvez visiter ici:
https://developer.android.com/reference/android/widget/ExpandableListView.html#setIndicatorBounds(int,%20int)
https://developer.android.com/reference/android/widget/ExpandableListView.html#setIndicatorBoundsRelative(int,%20int)
Écrire ce code dans Évolutif de l'adaptateur de Base.
Ils ont introduit une nouvelle méthode dans l'API de 18 ans et au-delà, une méthode appelée setIndicatorBoundsRelative(int, int).
Vous devriez vérifier pour la version Android et utiliser les méthodes respectives avec l'API:
si c'est dans le Fragment onViewCreated()
sa fonctionne pour moi!.
Cheers!
La
setIndicatorBounds(int left, int right)
est utilisé pour définir l'indicateur limites pour le groupe en vue d'uneExpandableListView
.Ici la largeur signifie un appareil de largeur.
Convertir pixel pour faire trempette :
Je suis en utilisant le court morceau inspiré par cet exemple qui exige deux un drawable sur le dossier:
De toute façon, j'ai dû adopter goodKode de la solution ainsi de "se débarrasser" le défaut de flèches.
Donc, je vous conseille de coller avec la solution simple fournies précédemment que c'est le plus minimaliste et d'approche précis.
ce a travaillé pour moi
Premier jeu android:groupIndicator="@null" en vous Extensible listview comme ci-dessous:
puis dans votre en-tête de mise en page comme ci-dessous:
Enfin ajouter ce dans vous de l'adaptateur dans getGroupView méthode add () ci-dessous :
je sais que c'est trop tard, mais voici une solution pour mettre l'indicateur sur la droite de la programmation, simple et facile à utiliser :
où
expandableListView
est votreExpandableListview
Essayez ceci...
ce code pour le réglage de la ExpandableList indicateur de groupe dans le côté droit de la vue.
Et d'appeler cette méthode,
Le résultat est..