0

J'ai un recyclerView qui doit montrer une liste de cartes, mais ce n'est pas le cas! Il y a une arrayList de recettes qui sont passées à l'adaptateur pour les afficher sous forme de cardviews, tout dans le débogage semble être bon, mais il n'affiche rien à l'écran. ViewHolder:RecyclerView qui est supposé diplay cardViews ne montre rien

import android.support.v7.widget.RecyclerView; 
import android.view.View; 
import android.widget.ImageView; 
import android.widget.TextView; 

import com.example.nd.ameer.bake.R; 

public class RecipeViewHolder extends RecyclerView.ViewHolder { 

    public TextView titleTextView; 
    public ImageView coverImageView; 

    public RecipeViewHolder(View v) { 
     super(v); 
     titleTextView = (TextView) v.findViewById(R.id.titleTextView); 
     coverImageView = (ImageView) v.findViewById(R.id.recipeImageView); 
    } 
} 

Adaptateur:

import android.content.Context; 
import android.support.v7.widget.RecyclerView; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.ViewGroup; 

import com.bumptech.glide.Glide; 
import com.example.nd.ameer.bake.R; 
import com.example.nd.ameer.bake.models.Recipe; 
import com.example.nd.ameer.bake.views.holders.RecipeViewHolder; 

import java.net.MalformedURLException; 
import java.net.URL; 
import java.util.ArrayList; 

public class RecipeAdapter extends 

RecyclerView.Adapter<RecipeViewHolder> { 


    ArrayList<Recipe> recipes = new ArrayList<>(); 
    Context context; 

    public RecipeAdapter(ArrayList<Recipe> recipes, Context context) { 
     this.recipes = recipes; 
     this.context = context; 
    } 

    @Override 
    public RecipeViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { 
     View view = LayoutInflater.from(context).inflate(R.layout.recipe_item, parent, false); 
     return new RecipeViewHolder(view); 
    } 

    @Override 
    public void onBindViewHolder(RecipeViewHolder holder, int position) { 

     holder.coverImageView.setImageResource(R.color.colorPrimaryLight); 
     holder.titleTextView.setText(recipes.get(position).getName()); 
    } 

    @Override 
    public int getItemCount() { 
     return recipes.size(); 
    } 
} 

Fragment onCreateView:

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, 
         Bundle savedInstanceState) { 
    // Inflate the layout for this fragment 
    rootView = inflater.inflate(R.layout.fragment_recipe, container, false); 

    createRecipes(); 

    recyclerView = (RecyclerView) rootView.findViewById(R.id.rv_recipe); 
    recyclerView.setHasFixedSize(true); 
    LinearLayoutManager layoutManager = new LinearLayoutManager(getContext()); 
    layoutManager.setOrientation(LinearLayoutManager.VERTICAL); 
    if (recipes.size() > 0 & recyclerView != null) { 
     recyclerView.setLayoutManager(layoutManager); 
     recyclerView.setAdapter(new RecipeAdapter(recipes, getContext())); 
    } 
    return rootView; 
} 

Le procédé createRecipes(); crée une liste de recettes, puis elle est transmise à l'adaptateur.

as you can see, the recipes size is 4, so it's not the problem

+0

Etes-vous sûr que la taille de la liste 'recipes' n'est pas 0? –

+0

Ouais c'est toujours 4, la même liste –

+0

pouvez-vous poster votre createRecipes() code et logs logcat –

Répondre

0

Je ne savais pas la cause du problème jusqu'à maintenant, mais je me suis déplacé à la fois l'adaptateur et le support de vue du Fragment Recettes que les classes internes, ce qui a résolu le problème.