2016-04-26 16 views
4

私はRecyclerViewを持っています。各項目は2つのEditTextとImageButtonを含むLinearLayoutです。 RecyclerViewは、自分のデータセットの最初のものを除くすべてのアイテムを表示しています。RecyclerViewは最初の項目を除くすべてを表示します

何が起こっているか教えていただけますか?

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(); 
} 
} 

これはわずか5を通じてアイテム2を表示します:

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

あなたの 'RecyclerView'のトップは別の' View'によって隠されているだけではありませんか? –

+0

重大なエラーが見つかりませんでした。他に何かがありません –

+1

うわー、それは私のappbarの下に押し込まれました。私は文字通りそれ以外のすべてをチェックしました。ありがとう、@MikeM。 –

答えて

1

レイアウトファイルにapp:layout_behavior属性がありませんでした。

他の誰かが同様の問題に遭遇した場合は、コンテンツレイアウトにapp:layout_behavior="@string/appbar_scrolling_view_behavior"を追加して、アプリケーションバーがコンテンツをオーバーラップさせずにプッシュするようにしました。

2

あなたRecyclerViewのあなたの最初の項目を隠すツールバーおそれ。

に役立ちますあなたのRecyclerViewのXML

ホープ属性

android:layout_marginTop="?attr/actionBarSize" 

の下に、これを使用してみてください!

関連する問題