vlayout icon indicating copy to clipboard operation
vlayout copied to clipboard

setMarginTop , setPaddingTop 复用的时候出现错位

Open littlezan opened this issue 7 years ago • 4 comments

比如说,我的某个Adapter extends DelegateAdapter.Adapter,在adapter初始化得时候,创建了新的LinearLayoutHelper,并且设置了setMarginTop ,在第一次显示得时候没有问题。当把这个item(LayoutHelper所控制得绘制区域)滑出屏幕得时候,然后再次划入屏幕,这个item会在底部加上marTop的距离,然后再次recyclerview刷新的时候,会把底部的marTop的距离给去掉,出现一个布局上的卡顿。

总体的现象就是: 1.第一次正常显示 2.滑出屏幕,再滑入屏幕,设置marginTop的item底部自动加上marginTop的距离 3.此时界面会再次刷新,把底部的距离去掉,给人突然裁剪的一个动作,恢复到正常的布局设置,只有marTop

vlayout-issue

代码如下: Adapter1

class HomePageActivityBannerAdapter(val context: Context,private val voiceBannerContentList: MutableList<HomeTabRemainModel.ValueMapModel.VoiceBannerModel.ContentListModel>) : DelegateAdapter.Adapter<HomePageActivityBannerAdapter.ViewHolder>() {

    private val layoutHelper: LinearLayoutHelper = LinearLayoutHelper()

    init {
        layoutHelper.marginTop = DensityUtil.dip2px(30f)
    }

    override fun onCreateLayoutHelper(): LayoutHelper {
        return layoutHelper
    }

Adapter2

class HomePageChooseFavoriteVoiceAdapter(val context: Context,  private val contentList: MutableList<HomeTabRemainModel.ValueMapModel.VoiceSelectModel.ContentListModel>) : DelegateAdapter.Adapter<HomePageChooseFavoriteVoiceAdapter.ViewHolder>() {

    private val layoutHelper: LinearLayoutHelper = LinearLayoutHelper()

    init {
        layoutHelper.marginTop = DensityUtil.dip2px(30f)
    }

    override fun onCreateLayoutHelper(): LayoutHelper {
        return layoutHelper
    }

littlezan avatar Dec 14 '18 03:12 littlezan

我也出现了同样的问题

tsm19911014 avatar Feb 20 '19 03:02 tsm19911014

同问啊

philadelphia avatar May 15 '19 08:05 philadelphia

marginBottom也会出现同样的问题

goodnightmycat avatar Jan 17 '20 02:01 goodnightmycat

有啥解决方案吗

NickTet avatar May 22 '20 16:05 NickTet