ConsecutiveScroller icon indicating copy to clipboard operation
ConsecutiveScroller copied to clipboard

app:autoAdjustHeightAtBottomView="true"这个属性针对ConsecutiveScroller.childAt(lastIndex)还是使用当前所在滑动窗口的最后一个View?

Open XXQAQ opened this issue 2 years ago • 8 comments

XXQAQ avatar Nov 21 '23 08:11 XXQAQ

ConsecutiveScroller.childAt(lastIndex)

donkingliang avatar Nov 22 '23 06:11 donkingliang

ConsecutiveScroller.childAt(lastIndex)

有没有什么办法调整为当前滑动窗口的最后一个View呢?

XXQAQ avatar Nov 23 '23 08:11 XXQAQ

我认为吸顶布局应该有三种模式 1.悬浮于滑动布局 2.下沉于滑动布局 3.占用当前滑动布局的垂直空间 前两种已经支持了,最后一种如果能解开"最后一个View"的限制那可就太好了

XXQAQ avatar Nov 23 '23 08:11 XXQAQ

因为我这边有一个功能,需要在RecyclerView中在Item可见的时候做动画(500毫秒左右),由于现在的吸顶是默认是悬浮的,导致item实际已经attchToWindow但是并没有真正可见,错过了动画的展示。所以我这边也在思考吸顶的本质问题

XXQAQ avatar Nov 25 '23 03:11 XXQAQ

autoAdjustHeightAtBottomView的原理是动态计算,让最后一个view的height等于ConsecutiveScroller.height - 吸顶的高度。你也可以自己手动设置任意view的高度固定为这个值。但是如果这个view不是最后一个,那么你在滑动过程中就会看到,布局出现脱节重叠的现象。你可以个自己的子滑动view设置个固定高度看一下

donkingliang avatar Nov 28 '23 02:11 donkingliang

那能否在ConsecutiveScroller的onLayout中动态调整吸顶下方的View能达到的最大Y值,我这边的核心需求不是调整滑动列表的高度,而是不希望吸顶View盖住了滑动列表

XXQAQ avatar Nov 29 '23 10:11 XXQAQ

我这边仔细看了源码,我看到了ConsecutiveScrollerLayout的onMeasure中针对最后一个子View 调用了getAdjustHeightForChild并限制其最大高度。所以高度这块我没有疑虑,我不理解的是,滑动控件在滑动的时候没有从吸顶View的下方过去,这是怎么做到的?我如何做到让所有的滑动子View都做到这个效果呢?

XXQAQ avatar Nov 29 '23 10:11 XXQAQ

这个效果就是通过修改最后一个view的高度实现。以为最后一个view的高度等于ConsecutiveScrollerLayout的高度-吸顶的高度,所以吸顶view覆盖不到最后一个view。这里你要理解view的高度和view内容的高度是两个概念,view的内容是在自己的view容器里面滑动的。

你想要的效果,还有一个实现思路,就是在滑动到根吸顶view重合时,动态改变你的那个滑动view的paddingTop,让滑动view顶部留出吸顶高度的空间,使滑动view的内容不被吸顶view覆盖。我不确定这种是否符合你的需求

donkingliang avatar Nov 30 '23 01:11 donkingliang