2
votes

Comment ajouter un défilement horizontal sur le recyclage vertical?

J'ai donc un aperçu de recyclage comme celui-ci:

 entrez la description de l'image ici

comme vous pouvez le voir, la largeur de l'écran n'est pas suffisante pour afficher correctement tout le texte, je dois donc ajouter un défilement horizontal pour que l'utilisateur puisse faire défiler horizontalement et verticalement en même temps, comment puis-je faire cela?


4 commentaires

pour une meilleure réponse, veuillez partager votre code


publier votre élément de liste xml.


la vue est créée par programme, de sorte que le xml n'a qu'une disposition linéaire comme parent.


Je pense qu'il vous suffit d'ajouter votre disposition gonflée de ligne de vue de recycleur dans la vue de défilement horizontale, puis cela fonctionne parfaitement, essayez-le ...


5 Réponses :


0
votes

Vous pouvez utiliser ceci dans votre disposition de ligne:

<HorizontalScrollView 
   android:layout_width="match_parent"
   android:layout_height="match_parent"
   xmlns:android="http://schemas.android.com/apk/res/android">

     //Your layout item here

</HorizontalScrollView>


2 commentaires

ne fonctionne pas, l'intégralité du recyclage n'apparaîtra pas si je l'utilise.


@ArdiSugiarto Bienvenue! si c'est utile, veuillez voter pour ma réponse ou l'accepter



0
votes
  1. Vous pouvez ajouter android: scrollHorizontally = "true" dans votre TextView
  2. S'il y a plus d'une vue dans votre élément de liste, vous pouvez utiliser HorizontalScrollView

0 commentaires

1
votes

Utilisez HorizontalScrollView avec LinearLayout comme enfant. Définissez son orientation sur horizontal et ajoutez-y vos vues dynamiques.

<?xml version="1.0" encoding="utf-8"?>
<HorizontalScrollView
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_height="wrap_content"
        android:layout_width="match_parent">

    <LinearLayout
            android:id="@+id/ll_main"
            android:orientation="horizontal"
            android:layout_width="wrap_content"
            android:layout_height="match_parent">
            // Add your dynamic views to this layout.
    </LinearLayout>

</HorizontalScrollView>


0 commentaires

0
votes

Placez le RecyclerView vertical dans HorizontalScrollView comme ci-dessous.

<HorizontalScrollView
    android:fillViewport="true"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <android.support.v7.widget.RecyclerView
        android:id="@+id/tasks_recycler_view"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:orientation="vertical"
        app:layoutManager="android.support.v7.widget.LinearLayoutManager"/>

</HorizontalScrollView>

Également l'élément racine de la vue de l'élément pour le RecyclerView doit avoir une largeur wrap_content et non match_parent , en définissant sa largeur sur wrap_content cela lui permet d'agrandir la largeur de son parent qui dans ce cas serait le RecyclerView.

Maintenant, dans la vue de l'élément, donnez wrap_content ou des largeurs fixes aux vues intérieures qui dans votre cas sont les vues pour afficher "Non", "Gagné", "Numéro d'article", "Quantité" et "UdM". En donnant des vues internes fixes ou l'option wrap_content , ils se développeront automatiquement ou en fonction de la largeur donnée, augmentant ainsi leur parent.


0 commentaires

0
votes

Essayez ceci

     val linearLayoutManager = LinearLayoutManager(this)
                linearLayoutManager.orientation = LinearLayoutManager.HORIZONTAL
                selected_recycler_view.layoutManager = linearLayoutManager

adapter = TAdapter(this, existing.selectedArrayList)


0 commentaires