2017-01-07 5 views
6

Ich habe gerade eine Recycler-Ansicht gemacht und es hat nicht funktioniert, also habe ich einen Haltepunkt auf getItemCount gesetzt und die Methode wird nicht aufgerufen. Ich habe noch nie jemanden anderen gesehen, der dieses spezielle Thema hat, ich bin mir sicher, dass es etwas lächerlich Offensichtliches ist. Hier ist mein Code.Recycler-Ansicht nicht aufrufen 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 Code:

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

Konnten Sie Ihren Recycleransichtinitialisierungscode posten? –

+0

sicher gerade hinzugefügt es, tbh ich tatsächlich nie in Betracht gezogen, das Problem könnte dort sein –

+9

Haben Sie ein Layout für Ihre RecyclerView? Z.B. 'recyclerView.setLayoutManager (Layout)' – Jiyeh

Antwort

2

Ich weiß, es ist völlig Unsinn, aber für mich ist das Problem gelöst, wenn ich die RecylerView layout_width und layout_height Eigentum von match_parent geändert wrap_content !!.

+0

Der Trick hat meine Zeit gerettet. Ich kann nicht verstehen, warum dieser obligatorische Wrap-Inhalt nicht erklärt wird – mg3

Verwandte Themen