android - RecyclerView 显示除第一项以外的所有内容

标签 android android-recyclerview

我有一个 RecyclerView,其中每个项目都是一个包含两个 EditText 和一个 ImageButton 的 LinearLayout。 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();
}
}

这只会显示项目 2 到 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);

最佳答案

也许您的 Toolbar 隐藏了您的 RecyclerView 的第一个项目。

尝试使用这个属性

android:layout_marginTop="?attr/actionBarSize"

在您的 RecyclerView xml 中。

希望对您有所帮助!

关于android - RecyclerView 显示除第一项以外的所有内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36853926/

相关文章:

android - 回收站查看水平和垂直滚动

android - 更新选定 RecyclerView 行中的 TextView

java - 使用套接字和 AsyncTask 强制关闭

android - 各种元素在同一行的 RecyclerView

android - RecyclerView 在顶部添加项目并继续滚动

Android - 在每个 viewpager recyclerview 的基础上激活应用栏滚动

android - 如何处理不同的屏幕尺寸以便 TextView 缩放

android - 在 Android 中使用 Alpha channel 解码 VP9,可能吗?

android - 列出 Google Drive 中的文件并获取 Android 中所选文件的 downloadUrl

java - 在 Android ListView 中显示 Twitter 时间线