【问题标题】:Attaching a fixed, transparent, header to a ListView?将固定、透明的标题附加到 ListView?
【发布时间】:2011-01-20 00:20:10
【问题描述】:

我一直在努力让它工作一段时间......有没有办法在列表视图上放置一个透明的固定标题,所以它看起来有点像这样:

当您向上滚动时,标题最终将是一个常规标题,其下方有项目 1。

我想我必须实现 onScrollListener 并做一些事情,比如当第一个可见项目是列表中的项目 2 时,开始将列表视图边距移动 1 个像素,直到它低于标题?还是有更好的方法?关于如何做这样的事情有什么想法吗?

【问题讨论】:

    标签: android listview


    【解决方案1】:

    我会制作一个 FrameLayout...并首先将您的 ListView 放入其中,填满屏幕。然后在上面放一个 TextView 。要在顶部获得所需的行为,可能在列表的位置 0 处有一个空白元素,或者只是使列表项 0 的顶部填充具有标题的高度...

    这有意义吗? ListView 应该在 FrameLayout 中的 TextView 下方滚动。

    【讨论】:

    • 这似乎是一个很好的解决方案。我的建议是在 ListView 上使用addHeaderView() 来添加与标题大小相同的空白视图,而不是仅仅添加一个空白元素。
    • 确实有道理。填充不起作用,因为我的视图有背景颜色,所以我最终添加了一个与我的标题相同大小的空白视图,正如 kcoppock 建议的那样,使用 addheaderview。
    【解决方案2】:

    您可以为此使用RelativeLayout,因此您可以使用一些属性获取Z轴;)

    更新:

    例如使用RelativeLayout:

    相对布局
    ----列表视图
    ----透明页眉

    将以您在图像上显示的方式出现。

    作为评论:Android 按照它们在 xml 中定义的顺序放置布局元素,因此,布局底部的小部件将位于顶部。

    【讨论】:

    • 默认情况下,框架布局将在 XML 中的声明顺序中利用 Z 轴,而相对布局则不会。
    猜你喜欢
    • 2019-07-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-10
    相关资源
    最近更新 更多