web-dev-qa-db-fra.com

Mise en table avec RecyclerView

Il n'y a que deux gestionnaires de disposition pour RecyclerView: LinearLayoutManager et GridLayoutManager. Existe-t-il un moyen d'utiliser TableLayout en tant que gestionnaire de disposition avec RecyclerView? Toute suggestion?

EDIT: Je me demande s’il existe une solution sans écrire un gestionnaire de disposition à partir de zéro. Le comportement TableLayout me suffit, je veux simplement ajouter une fonction de recyclage pour les problèmes de performances liés au traitement de grandes quantités de données.

Et créer une liste qui ressemble à une table ne résout pas mon problème, je pense, car ma table est très dynamique, je ne connais même pas les noms des colonnes, le client décidant de tous les détails de la table. Pour que les cellules soient personnalisées, la largeur des colonnes doit être redimensionnée automatiquement en fonction de la longueur du contenu. Je ne pense pas que listview puisse gérer ça.

Merci d'avance pour les aides.

34
Joseph K.
19
ziLk

Jetez un oeil à cette bibliothèque . On dirait que c'est exactement ce dont vous avez besoin. Il dispose également d'un système de recyclage.

7
rom4ek

J'ai essayé cela pour faire une table comme une structure, et cela a fonctionné.

Pour la mise en œuvre de l’adaptateur de votre RecyclerView, Créez une présentation Horizontalscrollview et placez-y tous vos éléments, dans votre présentation XML de la présentation de l’adaptateur.

Dans la présentation principale xml où vous ajoutez la vue du recycleur, ajoutez un HorizontalScrollView en tant que parent . Ajoutez maintenant un objet TableLayout à la propriété HorizontalScrollView.

J'ajoute le code ci-dessous pour la mise en page de l'adaptateur xml:

<HorizontalScrollView 
    xmlns:Android="http://schemas.Android.com/apk/res/Android"
    Android:id="@+id/horizontalScroll"
    Android:layout_width="match_parent"
    Android:layout_height="wrap_content">

    <!--Any custom layout here as per your need-->
</HorizontalScrollView>

J'ajoute le code ci-dessous pour la mise en page principale xml:

<TableLayout
    Android:layout_width="match_parent"
    Android:layout_height="wrap_content">

    <HorizontalScrollView>
    <Android.support.v7.widget.RecyclerView
        Android:id="@+id/empView"
        Android:layout_width="match_parent"
        Android:layout_height="wrap_content"
        Android:onClick="select"
        Android:scrollbars="vertical">        
    </Android.support.v7.widget.RecyclerView>
        </HorizontalScrollView>

</TableLayout>

Cela garantira que vous pouvez avoir une table comme structure pour faire défiler horizontalement et verticalement en utilisant recyclerview.

HorizontalscrollView vous permet de faire défiler horizontalement toute la liste dans TableLayout. RecyclerView vous permet de faire défiler la liste verticalement.

J'espère que cela fonctionne pour toi.

0
koushick

Créez une ligne personnalisée avec linearlayout et associez-la à recyclerView Adapter. Cette solution est la solution idéale pour créer un tableau similaire à Structure dans RecyclerView. 

0
PArth SOni