2016-04-26 10 views
4

Ich habe eine RecyclerView, wo jedes Element ein LinearLayout ist, das zwei EditTexts und ein ImageButton enthält. Die RecyclerView zeigt alle Elemente außer dem ersten meines Datensatzes.RecyclerView zeigt alles außer dem ersten Element

Kann mir jemand sagen, was los ist?

public class EditListAdapter extends RecyclerView.Adapter<EditListAdapter.ListViewHolder> { 

private ArrayList mListCardset; 

public static class ListViewHolder extends RecyclerView.ViewHolder{ 
    public EditText frontEditText; 
    public EditText backEditText; 
    public ImageButton editActionButton; 

    public ListViewHolder(View view) { 
     super(view); 
     frontEditText = (EditText)view.findViewById(R.id.front_edit_text); 
     backEditText = (EditText)view.findViewById(R.id.back_edit_text); 
     editActionButton = (ImageButton) view.findViewById(R.id.edit_action_button); 
    } 
} 

// Provide a suitable constructor (depends on the kind of dataset) 
public EditListAdapter(ArrayList aList) { 
    mListCardset = aList; 
} 

// Create new views (invoked by the layout manager) 
@Override 
public EditListAdapter.ListViewHolder onCreateViewHolder(ViewGroup parent, 
               int viewType) { 
    // create a new view 
    View v = LayoutInflater.from(parent.getContext()) 
      .inflate(R.layout.card_edit_item, parent, false); 
    // set the view's size, margins, paddings and layout parameters 

    ListViewHolder vh = new ListViewHolder((LinearLayout)v); 
    return vh; 
} 

// Replace the contents of a view (invoked by the layout manager) 
@Override 
public void onBindViewHolder(ListViewHolder listHolder, int pos) { 

    String[] eListItem = (String[]) mListCardset.get(pos); //get individual card @position 
    listHolder.frontEditText.setText(eListItem[0]); 
    listHolder.backEditText.setText(eListItem[1]); 

} 


private String[] strArrayListHelper(String frontString, String backString){ 
    String[] returnStrings = new String[2]; 
    returnStrings[0] = frontString; 
    returnStrings[1] = backString; 

    return returnStrings; 
} 

// Return the size of your dataset (invoked by the layout manager) 
@Override 
public int getItemCount() { 
    return mListCardset.size(); 
} 
} 

Dies wird nur Artikel 2 bis 5:

mRecyclerView = (RecyclerView)findViewById(R.id.list_edit_recycler_view); 

    ArrayList testListCards = new ArrayList<String[]>(); 
    testListCards.add(strArrayListHelper("Test 1","Test 1")); 
    testListCards.add(strArrayListHelper("Test 2","Test 2")); 
    testListCards.add(strArrayListHelper("Test 3","Test 3")); 
    testListCards.add(strArrayListHelper("Test 4","Test 4")); 
    testListCards.add(strArrayListHelper("Test 5","Test 5")); 

    // use a linear layout manager 
    mLayoutManager = new LinearLayoutManager(EditActivity.this); 
    mRecyclerView.setLayoutManager(mLayoutManager); 

    // specify an adapter 
    mAdapter = new EditListAdapter(testListCards); 
    mRecyclerView.setAdapter(mAdapter); 
+1

Sind Sie sicher, dass der obere Teil Ihres 'RecyclerView' nicht nur von einem anderen' View' verdeckt wird? –

+0

Ich konnte keinen signifikanten Fehler finden. Etwas anderes fehlt –

+1

Wow, es war unter meiner Appbar versteckt. Ich habe buchstäblich alles außer dem überprüft. Danke, @MikeM. –

Antwort

1

In meinen Layout-Dateien fehlte ein Attribut.

Wenn jemand anderes auf ein ähnliches Problem stößt, habe ich app:layout_behavior="@string/appbar_scrolling_view_behavior" zu meinem Inhaltslayout hinzugefügt, so dass die Appbar den Inhalt darunter schiebt, anstatt ihn zu überlappen.

2

Ihre ToolBar sein kann Ihr erstes Element Ihrer RecyclerView versteckt.

Versuchen Sie dies unter Attribut

android:layout_marginTop="?attr/actionBarSize" 

in Ihrem RecyclerView XML

Hoffnung, das hilft!

Verwandte Themen