11
votes

Suggestions pour la construction d'un contrôle d'arborescence à Android

Suggestions pour la construction d'un contrôle d'arborescence dans Android


0 commentaires

4 Réponses :


5
votes

Le ExpandablicatView est probablement la chose existante la plus proche. Gardez à l'esprit que cela pourrait être difficile pour un utilisateur au doigt de l'arborescence.


0 commentaires

12
votes

J'ai construit un arboresview code> de my propre qui prend en charge les niveaux n. Il est facile à utiliser dans des écrans tactiles, en particulier sur les appareils avec un écran plus grand. J'ai utilisé une classe qui s'étend listviewaDapter Code> et créé mon propre listItem code>. Les articles savent sur quel niveau ils sont et ils héritent du Déverstate code> de leurs parents (en se souvenant de leur propre état). Cet arbre est assez rapide jusqu'à mille articles. Entrez la description de l'image ici

Edit: Ajout du code, mais de la façon dont j'ai écrit dans le commentaire, il a gagné 'T être très utile, car il est très proche de mes propres besoins. P>

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
android:id="@+id/list_item_icon_text" 
xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_height="wrap_content" 
android:layout_centerVertical="true" 
android:background="@color/tree_normal_back" 
android:padding="1dip" 
android:orientation="horizontal" 
android:layout_width="fill_parent">
<LinearLayout 
    android:id="@+id/plusminus" 
    android:layout_height="48dip" 
    android:layout_width="24dip" 
    android:gravity="right|center_vertical">
    <ImageView 
        android:id="@+id/ImageView01" 
        android:layout_height="24dip" 
        android:layout_width="24dip"/>
</LinearLayout>
<LinearLayout 
    android:id="@+id/LinearLayout01" 
    android:layout_height="48dip" 
    android:layout_width="48dip" 
    android:orientation="horizontal" 

    android:paddingLeft="4dip">
    <LinearLayout 
        android:id="@+id/LinearLayout02" 
        android:layout_height="48dip" android:orientation="vertical" android:layout_width="16dip">

        <TextView 
            android:text="0" 
            android:id="@+id/doc_count" 
            android:textColorHighlight="@color/headline_font" 
            android:layout_gravity="center_vertical" 
            android:textColor="@color/black" 
            android:textSize="12dip" 
            android:layout_margin="0dip" 
            android:padding="0dip" 
            android:paddingTop="0dip" 
            android:gravity="center_vertical|center_horizontal" 
            android:background="@drawable/ico_24_paperclip" 
            android:textStyle="normal" android:layout_height="16dip" android:layout_width="16dip">
        </TextView>
        <ImageView 
            android:id="@+id/prun" 
            android:layout_gravity="center_vertical" 
            android:layout_height="16dip" 
            android:layout_width="16dip" android:background="@drawable/ico_24_prun"/>
        <ImageView 
            android:id="@+id/coord" 
            android:layout_gravity="center_vertical" 
            android:layout_height="16dip" 
            android:layout_width="16dip"       android:background="@drawable/ico_24_coord"/>

    </LinearLayout>
    <ImageView 
            android:id="@+id/img_view" 
            android:layout_gravity="center_vertical" 
            android:layout_height="24dip" 
            android:layout_width="24dip" />

</LinearLayout>
<Button 
    android:id="@+id/button" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:background="@drawable/tabs_edit"
    android:focusable="false"
    android:visibility="gone">
</Button>
<TextView 
    android:layout_gravity="center_vertical" 
    android:padding="2dip" 
    android:marqueeRepeatLimit="2" 
    android:layout_width="wrap_content" 
    android:textSize="22dip" 
    android:textColor="@color/tree_normal_font" 
    android:id="@+id/text_view" 
    android:layout_height="wrap_content">
</TextView>  
</LinearLayout>


10 commentaires

Joli! Souhaitez-vous la partager?


-1 pour se vanter. Cela a fière allure mais c'est complètement inutile comme une réponse, puisque vous nous laissez complètement seul sur la manière de mettre en œuvre une telle chose. Tout ce que vous faites, c'est montrer du fait que vous avez trouvé une réponse, et vous pouvez aussi bien dire «je peux répondre à cela» et l'avez laissé à cela.


Désolé, mais le code est très proche de mes besoins, j'ai écrit les pensées de base comment résoudre le problème, le froid de l'adaptateur ne sera pas très utile ...


Merci pour les modifications, j'ai commuté mon -1 à A +. Le code peut être spécifique à votre situation unique, mais de cette façon, au moins vous nous avez présenté le fondement d'une solution réalisable. :)


À quoi ressemble votre fichier "list_item_icon_text.xml"?


Bonjour @ 2RED13, le fichier XML a des éléments manquants, pourriez-vous le réparer?


bonne réponse mais besoin du code complet si vous avez le temps d'envoyer le lien.


Pouvez-vous nous fournir un projet complet? Ce serait utile pour tant de gens. merci d'anticipation.


Vous ne pouvez pas répondre avec votre ego activé. Vous pouvez avoir votre ego désactivé d'abord avant de répondre.


Vous n'êtes pas commenter avec votre cerveau Tordure. Comme je l'ai écrit au 23 décembre 2011 à 9h35, le code est très proche de mes besoins, cela me coûterait beaucoup de temps pour rendre les affaires génériques. Avec les informations fournies, vous pourrez le faire par vous-même.



6
votes

Voici une solution que notre société a ouvert ses portes en tant que bibliothèque (très facile à réutiliser):

http://code.google.com/p/tree-view -List-Android /

Entrez la description de l'image ici


1 commentaires

n'est pas possible de faire un tel arbre sans bibliothèques externes, mais avec des outils Android natifs?



1
votes

Vous pouvez utiliser cette bibliothèque: https://github.com/bmelnychuk/androidtreeview pour obtenir votre Vue d'arborescence requise. C'est un arbre Niveau N où vous pouvez contrôler chaque noeud dans l'arbre.

Utilisation

1) Installez: compile 'com.github.bmelychuk: VTT : 1.2. + '

2) Construire l'arborescence: xxx


0 commentaires