Android Recycle View无法顺利滚动

时间:2016-04-18 08:47:15

标签: android gridview android-recyclerview recycler-adapter

我正在我的Android应用程序中实现Recycleview,同时滚动循环视图挂起并且不能平滑滚动。

以下是我的代码 -

<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/main_container_ll"
android:background="@color/app_bg_color"
android:layout_width="match_parent"
android:layout_height="match_parent">

<android.support.design.widget.AppBarLayout
    android:id="@+id/appbar"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">

    <android.support.design.widget.CollapsingToolbarLayout
        android:id="@+id/collapsing_toolbar"
        android:layout_width="match_parent"
        android:layout_height="320dp"
        android:elevation="8dp"
        android:fitsSystemWindows="true"
        app:layout_scrollFlags="scroll|enterAlwaysCollapsed">

        <RelativeLayout
            android:layout_width="match_parent"
            android:layout_height="320dp"
            android:background="@color/app_bg_color"
            app:layout_scrollFlags="scroll|enterAlwaysCollapsed"
            app:layout_collapseMode="pin">

            <include
                android:id="@+id/profile_header"
                layout="@layout/profile_header_view"/>
        </RelativeLayout>

    </android.support.design.widget.CollapsingToolbarLayout>
</android.support.design.widget.AppBarLayout>

<android.support.v7.widget.RecyclerView
    android:id="@+id/simpleRecyclerView"
    android:layout_height="match_parent"
    android:layout_width="match_parent"
    android:background="@color/transparent_color"
    app:layout_behavior="@string/appbar_scrolling_view_behavior"/>

  </android.support.design.widget.CoordinatorLayout>

任何人都可以帮我解决这个问题。非常感谢。

TIA

EDITED

以下是我的适配器类 -

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

private Context mContext;
private ArrayList<PostOfUsersModel> mList;

public UserPostRecycleAdapter(Context context){
    mList=new ArrayList<PostOfUsersModel
            >();
    this.mContext = context;
}

public void setList(ArrayList<PostOfUsersModel> list){
    this.mList = list;
    notifyDataSetChanged();
}


@Override
public ViewHolder onCreateViewHolder(ViewGroup viewGroup, int viewType) {
    View view = LayoutInflater.from(mContext).inflate(R.layout.post_grid_item_view, viewGroup,false);
    ViewHolder viewHolder = new ViewHolder(view);
    return viewHolder;
}

@Override
public void onBindViewHolder(ViewHolder holder, int position) {
   PostOfUsersModel model = mList.get(position);
    if(model.PostMediaURL.endsWith(".jpeg") || model.PostMediaURL.endsWith(".jpg")) {
        holder.mPlayVideoIB.setVisibility(View.GONE);
        ImageLoaderUniversal.ImageLoadSquare(mContext, model.PostMediaURL, holder.imageView, ImageLoaderUniversal.option_normal_Image);
    }
    else if(model.PostMediaURL.endsWith(".mp4")){
        holder.mPlayVideoIB.setVisibility(View.VISIBLE);
        holder.imageView.setVisibility(View.VISIBLE);
        holder.imageView.setImageResource(R.mipmap.ic_default_video);
    }
}

@Override
public int getItemCount() {
  return null==mList?0:mList.size();
}

public class ViewHolder extends RecyclerView.ViewHolder {
    protected ImageView imageView;
    private ImageButton mPlayVideoIB;

    public ViewHolder(View view) {
        super(view);
        this.imageView = (ImageView) view.findViewById(R.id.post_iv);
        this.mPlayVideoIB = (ImageButton) view.findViewById(R.id.play_video_ib);
    }
}

}

0 个答案:

没有答案