我们如何在滚动视图中设置过度滚动页眉和页脚?

Posted

技术标签:

【中文标题】我们如何在滚动视图中设置过度滚动页眉和页脚?【英文标题】:How we can set overscroll header and footer in scrollview? 【发布时间】:2014-11-08 20:07:23 【问题描述】:

我想在滚动视图中设置“Overscroll”页眉和“Overscroll”页脚。ScrollView Overscroll 工作正常。但我无法在滚动视图中设置页眉和页脚。但是在滚动视图中“overScrollHeader”和“overScrollFooter”方法不可用。我应该如何设置页眉和页脚?

【问题讨论】:

我认为你有 onOverScrolled() 并从位置决定它是否是页脚上的页眉。 【参考方案1】:

你不能为scrollView设置overScrollHeader/Footer。 我遇到了同样的问题,并且一直在寻找我无法在我的情况下使用的列表视图示例。 不过我想出了一个办法。不确定它是否是最好的方法,但基本上我正在做的是在滚动视图的子项上设置负边距。实现它的最简单方法是使用布局 xml,并将 ScrollView 的 Child ViewGroup 的 marginTop 设置为某个负数。然后将滚动视图的底部填充设置为与子视图中设置的边距相同的量。 (抱歉有点混乱)

<ScrollView
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/ScrollView"
android:layout_
android:layout_
android:paddingBottom="-100dp">
<LinearLayout
    android:orientation="vertical"
    android:layout_marginTop="-100dp"
    android:layout_
    android:layout_>
... etc

类似的东西。

您的 ChildView 顶部的任何内容都应显示在过度滚动区域中。

但是我不想在 xml 中执行此操作,因为它对我来说不够灵活,我创建了一个自定义类,您可以在其中设置您希望在过度滚动区域中显示的任何视图。

在您的自定义滚动视图中覆盖 onMeasure 或其他一些方法,您可以在其中获取标题视图的高度,并动态设置子级的边距和滚动视图的填充。

由于我不需要页脚,我还没有尝试过,但我确信有一种方法可以使用相同类型的方法来解决它。同样,我不太确定这是否是最好的解决方案(尤其是使用负边距和填充有点可怕,尽管对于线性和相对布局应该没问题)但它对我有用,所以我想我会分享它!

【讨论】:

以上是关于我们如何在滚动视图中设置过度滚动页眉和页脚?的主要内容,如果未能解决你的问题,请参考以下文章

如何设置页眉、可滚动内容和页脚?在安卓中

ScrollView 的过度滚动页眉/页脚?

如何在不滚动的情况下使此页眉和页脚可见?

Cordova - 使用固定的页眉和页脚滚动 (ios)

具有固定页眉、第一列和页脚的表格 + 向内滚动

在水平滚动时如何将菜单和页脚保持在同一位置?