9
votes

Android: Comment modifier la position de l'indicateur ExtensibleListView?

Je souhaite modifier la position de la flèche par défaut qui apparaît dans la vue Groupe de l'expansionListeView. Je veux que ce soit à droite au lieu d'être à gauche.

Comment cela peut-il être fait?


0 commentaires

5 Réponses :


-3
votes

Il n'y a pas de mauvaise façon de faire cela.

MindicatorLeft et MindicatorRight sont les deux champs de la classe ExpandablicatView qui gèrent l'emplacement de l'icône de l'indicateur et sont des champs privés. Malheureusement, la position de l'indicateur n'est pas définie dans une mise en page soigneusement définie comme prévu, mais est déterminée sur DispatchDraw () dans la vue ExtensibleList. Un rectangle est dessiné à l'aide des valeurs supérieure / bas et inférieure et MindicatorRight et MindicatorLeft, l'icône Indicateur est dessinée dans ce rect. Vous devez modifier la position de ce record obj nommé 'IndicatorRect' pour déplacer votre icône Indicateur.

Pour avoir une idée de choses que vous pouvez voir cet exemple http://developer.android.com/resources/samples/aplidemos/src/com/example/android/apis/view/expandablelist1.html Changer la valeur du remplissage TextView à 0 dans GetGenericView () Dans l'exemple, vous verrez que l'indicateur chevauchera le texte.

Votre seule option consiste à obtenir le code source de WeandableLisview et à définir vous-même ces valeurs MindicatorRight et MindicatorLeft en réglant le MindicatorRight en tant que élément.GetRight () et MindicatorLeft comme élément.GetTright () - "Votre taille d'icône".


0 commentaires

29
votes

En fait, il y a un moyen simple.

  1. Modifiez votre XML lié à la vue sur le groupe comme ceci: p>

    @Override
    public View getGroupView(final int groupPosition, final boolean isExpanded, final View convertView, final ViewGroup parent) {
        View v;
        if (convertView == null) {
            v = newGroupView(isExpanded, parent);
        } else {
            v = convertView;
        }
        bindView(v, mGroupData.get(groupPosition), mGroupFrom, mGroupTo);
        ((ImageView) v.findViewById(R.id.videos_group_indicator))
            .setImageResource(isExpanded?R.drawable.videos_chevron_expanded:R.drawable.videos_chevron_collapsed);
        return v;
    }
    


4 commentaires

Que mettez-vous dans la balise indicatrice à l'intérieur de l'expansionListeView une?


Android: groupindicator = "@ null"


@Nagarjunareddy: Je suis désolé, quoi?


@Bicou Voir ce Stackoverflow.com/questions/15501413/...



9
votes

Utilisez Seindicatorbounds :

Définit les limites de dessin des indicateurs (au minimum, le groupe l'indicateur est affecté par cela; L'indicateur enfant est affecté par cette Si l'indicateur enfant limite est réglé sur hériter).


0 commentaires

6
votes

Essayez ceci xxx

et le getdipsfrompixel est ici xxx


0 commentaires

0
votes

 Entrez la description de l'image ici

Si vous souhaitez modifier l'indicateur de position de gauche sur le côté droit, vous devez ajouter Android: LayoutDirection =" RTL " . Mais la position de la liste change au côté droit.

Le code exemple est ressemblant à ceci xxx


0 commentaires