再次滚动到顶部时的 TwoWayView 空白问题

Posted

技术标签:

【中文标题】再次滚动到顶部时的 TwoWayView 空白问题【英文标题】:TwoWayView blank space issue when scroll to top again 【发布时间】:2018-10-12 11:02:22 【问题描述】:

我正在使用 TwoWayView

https://github.com/lucasr/twoway-view

它的工作正常,但是当从服务器加载图像时滚动到顶部时,有时空白会出现在顶部。

我的屏幕 xml:

  <package.TwoWayView xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/listTwoWay"
    style="@style/TwoWayView"
    android:layout_
    android:layout_
    app:twowayview_layoutManager="StaggeredGridLayoutManager"
    app:twowayview_numColumns="2"
    app:twowayview_numRows="2" />

我的行布局固定高度和宽度

<?xml version="1.0" encoding="utf-8"?>
 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_
android:layout_
android:background="@color/color_white_gray">

<ImageView
    android:id="@+id/imgItemGrid"
    android:layout_
    android:layout_
    android:layout_centerHorizontal="true"
    android:layout_centerVertical="true"
    android:scaleType="fitXY"
    android:src="@drawable/artist_expand_bg1" />

</RelativeLayout>

我的适配器 onbind 如下所示

@Override
public void onBindViewHolder(final SimpleViewHolder holder, final int position) 
    final View itemView = holder.itemView;
    //set imageview
    Glide.with(mContext)
            .load(dataList.get(position).getImage())
            .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, DataSource dataSource, boolean isFirstResource) 
                    holder.progressBar.setVisibility(View.GONE);
                    return false;
                
            )
            .into(holder.imgItemGrid);

    final int dimenId;
    final int span;

    if (position == 0) 
        dimenId = R.dimen.staggered_child_large;
        span = 2;      
    else 
        dimenId = R.dimen.staggered_child_large;
        span = 2;
    
    final int size = mContext.getResources().getDimensionPixelSize(dimenId);
    final StaggeredGridLayoutManager.LayoutParams lp =
            (StaggeredGridLayoutManager.LayoutParams) itemView.getLayoutParams();

    lp.span = span;
    lp.height = size;
    itemView.setLayoutParams(lp);
   

我尝试过以编程方式设置图像视图和查看器的宽度,但没有成功。 感谢您提前提出建议或任何帮助。

【问题讨论】:

【参考方案1】:

最后我改为使用 Asymmentric recyclerview 库。这个库中没有这样的问题。请点击以下链接。

https://github.com/felipecsl/AsymmetricGridView?utm_source=android-arsenal.com&utm_medium=referral&utm_campaign=1186

【讨论】:

以上是关于再次滚动到顶部时的 TwoWayView 空白问题的主要内容,如果未能解决你的问题,请参考以下文章

当导航条滚动到顶部时固定到顶部

滚动到顶部时删除类

UICollectionview:滚动到顶部时安全区域上的灰色条

滚动到顶部时在表格视图的开头动态添加行

UITableViewcontentInset:当滚动表格到顶部时,行在第一个标题上方仍然可见

更改 NSMutableAttributedString 直到滚动到顶部时,文本视图中的子视图按钮消失