Existe-t-il un moyen d'afficher un aperçu du contenu d'un RecyclerView dans l'éditeur Android Studio?


Réponses:


642

@oRRs a raison!

J'utilise Android Studio 1.4 RC2 et vous pouvez maintenant spécifier n'importe quelle disposition personnalisée.

J'ai essayé un CardView personnalisé et cela fonctionne.

tools:listitem="@android:layout/simple_list_item_checked"

1
Voir le commentaire @oRRs: tools: listitem = "@ android: layout / simple_list_item_checked"
Philippe David

2
existe-t-il un moyen de prévisualiser en mode grille?

27
@sajad essayez cette application: layoutManager = "GridLayoutManager" tools: listitem = "@ layout / layout_list_item_select_seat" app: spanCount = "5"
atabouraya

4
Si vous souhaitez également définir une orientation horizontale, vous pouvez:tools:orientation="horizontal"
Développeur Android

3
En plus de spécifier tools:orientation="horizontal"ou android:orientation="horizontal"j'ai également dû spécifier app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"selon stackoverflow.com/questions/35681433/…
Michael Osofsky

137

tools l'espace de noms permet des fonctionnalités au moment de la conception (telles que la disposition à afficher dans un fragment) ou des comportements au moment de la compilation (tels que le mode de réduction à appliquer à vos ressources XML). C'est une fonctionnalité vraiment puissante qui se développe et vous permet de ne pas compiler le code toutes il est temps de voir les changements

AndroidX [À propos] et GridLayoutManager

implementation 'androidx.recyclerview:recyclerview:1.1.0'
<androidx.recyclerview.widget.RecyclerView
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"

    android:layout_width="match_parent"
    android:layout_height="match_parent"

    tools:layoutManager="androidx.recyclerview.widget.GridLayoutManager"
    tools:listitem="@layout/item"
    tools:itemCount="10"
    tools:orientation="vertical"
    tools:scrollbars="vertical"
    tools:spanCount="3"/>

Support et LinearLayoutManager

implementation 'com.android.support:recyclerview-v7:28.0.0'

<android.support.v7.widget.RecyclerView
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"

    android:layout_width="match_parent"
    android:layout_height="wrap_content"

    tools:layoutManager="android.support.v7.widget.LinearLayoutManager"
    tools:listitem="@layout/item"
    tools:itemCount="3"
    tools:orientation="horizontal"
    tools:scrollbars="horizontal" />

Une autre fonctionnalité intéressante qui a été introduite dans Android studio 3.0prédéfinit une donnée via les attributs des outils, pour visualiser facilement votre structure de mise en page à l'aide de @tools:sample/*ressources

item.xml

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="100dp"
    android:layout_height="150dp"
    android:layout_marginRight="15dp"
    android:layout_marginBottom="10dp"
    android:orientation="vertical"
    tools:background="@tools:sample/backgrounds/scenic">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textColor="@color/colorWhite"
        tools:text="@tools:sample/first_names" />

</FrameLayout>

Résultats:


2
Cela doit être marqué comme réponse, car il est détaillé et compatible avec RecylerView. ListViews n'est plus du tout utilisé de nos jours.
Abhinav Saxena

J'ai dû passer à moins d'onglet d'attribut dans la zone d'attribut pour pouvoir voir l' listitemoption, je pouvais simplement le taper dans le code xml!
George Udosen

1
Si vous utilisez votre propre mise en page d'élément de liste et que vous ne voyez qu'un (1) élément de liste, vérifiez que layout_height = "wrap_content" sur votre mise en page.
Jeffrey

1
En fait, cela ne fonctionne pour moi que si j'utilise ListView mais pas avec un RecyclerView. Des idées? Je copie collé pour être sûr de ne pas tout gâcher avec mon RecyclerView. Mais en fait, cela fonctionne, c'est donc un XML valide.
xarlymg89

"@tools: sample / *" est un type de ressource réservée android de données d'espace réservé que vous pouvez injecter dans vos mises en page. last_names - Noms de famille communs. Le document officiel complet - developer.android.com/studio/write/…
yoAlex5

4

Tout d'abord, ajoutez la ligne suivante dans le XML de votre article pour faire un aperçu de votre liste pendant que vous modifiez votre article:

tools:showIn="@layout/activity_my_recyclerview_item"

Et eux, ajoutez la ligne suivante dans votre XML RecyclerView pour prévisualiser l'apparence de votre article dans votre liste:

tools:listitem="@layout/adapter_item"

3

À partir d'Android Studio 1.3.1, il affiche les éléments de liste par défaut dans l'aperçu, mais il ne vous permet pas encore de spécifier les vôtres. Espérons que cela viendra.


19
Dans AS 1.4, vous pouvez choisir parmi quelques mises en page prédéfinies, par exemple: tools: listitem = "@ android: layout / simple_list_item_checked". Faites un clic droit sur RecyclerView dans l'éditeur de mise en page et choisissez "Aperçu du contenu de la liste". Malheureusement, vous ne pouvez toujours pas l'utiliser pour vos propres mises en page, du moins pour moi, cela génère une erreur de rendu.
oRRs
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.