使用NestedScrollView的水平回收视图使用滑动加载gif

时间:2018-03-12 10:52:50

标签: android android-recyclerview android-glide android-nestedscrollview

我在NestedScrollView中使用Horizo​​ntal recyclerview。当我想在水平滚动视图内滚动更快时,它会转到视图的上方。和recyclerview不太顺利。

  • 注意:当我加载gif图像时,它会发生但是当jpg图像加载时 永远不要去视图的上方。但不能像预期的那样顺利。

所有recyclerview数据绑定

    RecyclerViewDataAdapter adapter = new RecyclerViewDataAdapter(getActivity(), allSampleData);
    LinearLayoutManager mLayoutManager = new LinearLayoutManager(getActivity(), LinearLayoutManager.VERTICAL, false);
    recyclerView.setLayoutManager(mLayoutManager);
    mLayoutManager.setAutoMeasureEnabled(true);
    recyclerView.setAdapter(adapter);
    adapter.notifyDataSetChanged();
    recyclerView.setHasFixedSize(true);
    recyclerView.setNestedScrollingEnabled(false);

剖面数据初始化

    SectionListDataAdapter itemListDataAdapter = new SectionListDataAdapter(mContext, singleSectionItems, sectionName,itemRowHolder.previewImage);
    itemRowHolder.recycler_view_list.setHasFixedSize(true);
    itemRowHolder.recycler_view_list.setLayoutManager(new LinearLayoutManager(mContext, LinearLayoutManager.HORIZONTAL, false));
    itemRowHolder.recycler_view_list.setAdapter(new AlphaInAnimationAdapter(itemListDataAdapter));
    itemRowHolder.recycler_view_list.setNestedScrollingEnabled(false);

 <android.support.v7.widget.RecyclerView
                android:id="@+id/recycler_view_list"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_alignParentLeft="true"
                android:layout_alignParentStart="true"
                android:layout_centerVertical="true"
                android:layout_gravity="center_vertical"
                android:orientation="horizontal"
                android:paddingTop="0dp" />

图片加载

Glide.with(MyApplication.applicationContext) // replace with 'this' if it's in activity
                .load(previewUrl.replaceAll(" ", "%20"))
                .listener(new RequestListener<Drawable>() {
                    @Override
                    public boolean onLoadFailed(@Nullable GlideException e, Object model, Target<Drawable> target, boolean isFirstResource) {
                        holder.progressBar.setVisibility(View.GONE);
                        return false;
                    }

                    @Override
                    public boolean onResourceReady(Drawable resource, Object model, Target<Drawable> target, com.bumptech.glide.load.DataSource dataSource, boolean isFirstResource) {
                        holder.progressBar.setVisibility(View.GONE);
                        return false;
                    }


                })

                .into(holder.itemImage);

1 个答案:

答案 0 :(得分:0)

我找到了自己的解决方案,这发生在滑行库中。您可以使用Facebook壁画库进行gif加载。