2017-01-07 9 views
6

Właśnie wykonałem widok recyklera i nie działał, więc ustawiłem breakpoint na getItemCount i metoda nie jest wywoływana. Nigdy nie widziałem, żeby ktokolwiek inny miał taki szczególny problem, jestem pewien, że jest to coś absurdalnie oczywistego. Oto mój kod.Widok Recycler nie wywołujący getItemCount

public class SearchAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> { 

private ArrayList<Object> displayList; 

public static class ViewHolder extends RecyclerView.ViewHolder { 
    public ViewHolder(View v) { 
     super(v); 
    } 
} 

public class ErrorSearchItem extends ViewHolder { 
    //this is here if there is no other viewholder 

    public ErrorSearchItem(View view) { 
     super(view); 

    } 
} 

public class HeaderViewHolder extends ViewHolder { 


    public HeaderViewHolder(View view) { 
     super(view); 

    } 
} 



@Override 
public int getItemViewType(int position) { 

    return position; 
} 

public SearchAdapter(ArrayList<Object> displayList) { 
    this.displayList = displayList; 
} 

@Override 
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { 
    if (displayList.get(viewType) instanceof String){ 
     View itemView = LayoutInflater.from(parent.getContext()) 
       .inflate(R.layout.row_search_title, parent, false); 
     return new HeaderViewHolder(itemView); 
    } 
    else{ //this is for if there is an error and no other xml files match 
     View itemView = LayoutInflater.from(parent.getContext()) 
       .inflate(R.layout.row_error_search_item, parent, false); 
     return new ErrorSearchItem(itemView); 
    } 
} 

@Override 
public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { 

} 


@Override 
public int getItemCount() { 

    return displayList.size(); 
} 

@Override 
public void onAttachedToRecyclerView(RecyclerView recyclerView) { 
    super.onAttachedToRecyclerView(recyclerView); 

} 

} 

edit: fragment kodu:

private RecyclerView recyclerView; 
private SearchAdapter searchAdapter; 

recyclerView = (RecyclerView) v.findViewById(R.id.recycler_view); 

    searchAdapter = new SearchAdapter(categorizedArray); 
    recyclerView.setItemAnimator(new DefaultItemAnimator()); 
    recyclerView.setAdapter(searchAdapter); 
+0

Czy mógłbyś opublikować swój widok recyklera zainicjować kod? –

+0

z pewnością go dodałem, tbh nigdy nie uważałem, że problem może być na tym poziomie. –

+9

Czy ustawiłeś 'Układ' dla swojego recyklera? Na przykład. 'recyclerView.setLayoutManager (layout)' – Jiyeh

Odpowiedz

2

wiem, że to nonsens, ale zupełnie dla mnie problem rozwiązany, kiedy zmienił layout_width RecylerView i mienia layout_height z match_parent do wrap_content !!.

+0

Sztuczka uratowała mój czas. Nie rozumiem, dlaczego ta obowiązkowa zawartość okładki nie została wyjaśniona – mg3

Powiązane problemy