RecycleView不显示数据

时间:2016-02-05 07:52:34

标签: java android android-recyclerview

我有一个非常受欢迎的问题 - 为什么数据没有显示在RecycleView中。

那是我的适配器:

SCOPE_IDENTITY()

}

这是我的观点:

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

private static final String TAG = "CommentsAdapter";
public ImageView mThumbView;
private List<PostComment> postCommentList;

public CommentsAdapter(List<PostComment> postCommentList) {
    this.postCommentList = postCommentList;
}
@Override
public CommentsAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
    View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.post_comment_item, parent, false);
    return new ViewHolder(v);
}

@Override
public void onBindViewHolder(CommentsAdapter.ViewHolder holder, int position) {
    PostComment record = postCommentList.get(position);
    holder.mAuthorTextView.setText(record.getUser().getFull_name());
    holder.mDateTextView.setText(record.getCreated_at());
    holder.mTextTextView.setText(record.getText());
}

@Override
public int getItemCount() {
    Log.i(TAG + " comments size", Integer.toString(postCommentList.size()));
    return postCommentList.size();
}

public void addItems(List<PostComment> postCommentList) {
    this.postCommentList.addAll(postCommentList);
}

public class ViewHolder  extends RecyclerView.ViewHolder {
    // each data item is just a string in this case
    public TextView mAuthorTextView;
    public TextView mDateTextView;
    public TextView mTextTextView;
    public ViewHolder(View v) {
        super(v);
        mAuthorTextView = (TextView) itemView.findViewById(R.id.comment_author);
        mDateTextView = (TextView) itemView.findViewById(R.id.comment_date);
        mTextTextView = (TextView) itemView.findViewById(R.id.comment_text);
    }
}

这就是我设置适配器的方式:

<android.support.v7.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:card_view="http://schemas.android.com/apk/res-auto"
android:id="@+id/container"
....>

<RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@android:color/white"
    android:paddingBottom="16dp"
    android:paddingLeft="16dp"
    android:paddingRight="16dp"
    android:paddingTop="16dp">
    <ImageView
        android:id="@+id/comment_image"
        android:layout_width="50dp"
        android:layout_height="50dp"
        android:scaleType="centerInside"
        android:src="@drawable/cat"/>

    <RelativeLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/middleLayout"
        android:layout_toRightOf="@+id/comment_image"
        android:layout_marginTop="8dp">


        <TextView
            android:id="@+id/comment_author"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerVertical="true"
            android:singleLine="true"
            android:text="Dark Plastic"
            android:textColor="?attr/colorPrimary"
            android:textSize="14dp" />



        <TextView
            android:id="@+id/comment_date"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerVertical="true"
            android:layout_marginLeft="8dp"
            android:layout_toRightOf="@+id/comment_author"
            android:text="21 minutes"
            android:textSize="14dp" />


    </RelativeLayout>

    <TextView
        android:id="@+id/comment_text"
        android:layout_width="wrap_content"
        android:layout_toRightOf="@+id/comment_image"
        android:layout_height="wrap_content"
        android:maxLines="3"
        android:layout_marginTop="8dp"
        android:layout_below="@id/middleLayout"
        android:text="sd"
        android:textColor="@android:color/black"
        android:textSize="16dp" />

</RelativeLayout>

<View
    android:id="@+id/divider"
    android:layout_width="match_parent"
    android:layout_height="1dp"
    android:layout_gravity="bottom"
    android:paddingLeft="16dp"
    android:paddingRight="16dp"></View>

设置适配器后, mLayoutManager = new LinearLayoutManager(this); mLayoutManager.setOrientation(LinearLayoutManager.VERTICAL); post_details_comments_list.setLayoutManager(mLayoutManager); mCommentListAdapter = new CommentsAdapter(new ArrayList<PostComment>()); post_details_comments_list.setAdapter(mCommentListAdapter); 返回项目数量 - 因此不为空。

RecycleView布局:

getItemCount

<?xml version="1.0" encoding="utf-8"?>

我向服务器发出请求,这里是回调,我得到结果并设置适配器:

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

<com.google.android.gms.maps.MapView
    android:id="@+id/post_details_mapview"
    android:layout_width="wrap_content"
    android:layout_height="200dp" />

<RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content">
<TextView
    android:id="@+id/post_details_comments_count"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    style="@style/TextLabelStyle"/>

</RelativeLayout>

<android.support.v7.widget.RecyclerView
    android:id="@+id/post_details_comments_list"
    android:layout_width="match_parent"
    android:scrollbars="vertical"
    android:layout_height="wrap_content">
</android.support.v7.widget.RecyclerView>
    <EditText
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/edit_comment"
    android:hint="@string/hint_type_comment"/>

</LinearLayout>

但是列表没有显示。 可能是什么原因?

2 个答案:

答案 0 :(得分:0)

null放在View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.post_comment_item, parent, false);

中的父级

答案 1 :(得分:0)

我已经解决了这个问题。问题是我在NestedScrollView

中有RecycleView

这篇文章中的答案帮了我很多忙: How to use RecyclerView inside NestedScrollView?