2017-01-27 1 views
-3

Mise à jour Question J'aime RecyclerView en utilisant Glide, car l'image sera chargée lorsque l'élément apparaîtra à l'écran. Exemple: 100 articles, 10 articles sont apparus à l'écran, glisser juste charger 10 articles.RecyclerView à l'intérieur de NestedScrollView, chargement Imageview

Mais lorsque RecyclerView à l'intérieur de NestedScrollView, l'image sera chargée ensemble (charge de 100 éléments ensemble). Question: comment utiliser le glissement avec RecyclerView à l'intérieur de NestedScrollView?

<android.support.v4.widget.NestedScrollView 
    android:id="@+id/nestedScroll" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:fillViewport="true" 
    app:layout_behavior="@string/appbar_scrolling_view_behavior"> 
    <android.support.v7.widget.RecyclerView 
     android:id="@+id/recyclerView" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content"/> 
</android.support.v4.widget.NestedScrollView> 

du code Java

NestedScrollView nestedScroll = (NestedScrollView) findViewById(R.id.nestedScroll); 
    RecyclerView recyclerView = (RecyclerView) findViewById(R.id.recyclerView); 
    LinearLayoutManager linear = new LinearLayoutManager(this, LinearLayoutManager.VERTICAL, false); 
    recyclerView.setLayoutManager(linear); 
    recyclerView.setNestedScrollingEnabled(false); 
+0

obvioulsy parce que 'android: layout_height = "wrap_content"' ce qui signifie basiacally "prend en même hauteur que la somme de la hauteur de tous les éléments" (qui fait également RecyclerView ne défilent pas - seulement NestedScrollView défile) – Selvin

+0

Qu'est-ce que vous avez fait pour charger les images? –

+0

@PratikButani semble que vous ne comprenez pas ce qui se passe ... le problème est que toutes les images se chargent en même temps ... parce qu'il a fait LinearLayout avec son RecyclerView – Selvin

Répondre

-1

Glide soutient votre comportement souhaité avec le priorité ENUM et la méthode .priority().

L'énumération vous donne quatre options différentes. Voici la liste ordonnée avec une priorité croissante:

  • Priority.LOW
  • Priority.NORMAL
  • Priority.HIGH
  • Priority.IMMEDIATE

Exemple d'utilisation:

Glide.with(context) 
     .load("url") 
     .priority(Priority.HIGH) 
     .into(imageViewHero); 

Essayez-le. J'espère que cela vous sera utile.

Source: https://futurestud.io/tutorials/glide-request-priorities

+0

Merci, mais image sill charge ensemble –

+0

@ TomTomDeCrab https: // github.com/bumptech/glide/issues/1075 # issuecomment-199349653 –

+0

Merci, c'est le problème, Glide ne fonctionnera pas parfaitement lorsque RecyclerView à l'intérieur de NestedScrollView, peut-être Glide lire tout l'élément dans RecyclerView a visible à l'écran, donc toute image chargée –