vlayout
vlayout copied to clipboard
setMarginTop , setPaddingTop 复用的时候出现错位
比如说,我的某个Adapter extends DelegateAdapter.Adapter,在adapter初始化得时候,创建了新的LinearLayoutHelper,并且设置了setMarginTop ,在第一次显示得时候没有问题。当把这个item(LayoutHelper所控制得绘制区域)滑出屏幕得时候,然后再次划入屏幕,这个item会在底部加上marTop的距离,然后再次recyclerview刷新的时候,会把底部的marTop的距离给去掉,出现一个布局上的卡顿。
总体的现象就是: 1.第一次正常显示 2.滑出屏幕,再滑入屏幕,设置marginTop的item底部自动加上marginTop的距离 3.此时界面会再次刷新,把底部的距离去掉,给人突然裁剪的一个动作,恢复到正常的布局设置,只有marTop

代码如下: 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
}
我也出现了同样的问题
同问啊
marginBottom也会出现同样的问题
有啥解决方案吗