【问题标题】:Listview with one sticky header for second row第二行带有一个粘性标题的列表视图
【发布时间】:2014-12-24 22:34:31
【问题描述】:

我的布局有点复杂。

我有一个SwipeRefreshLayout,我在其中托管了一个ListView。每当用户拖动 Listview 的顶部时,SwipeRefreshLayout 都会执行刷新。我还听ListView 的最后一个可见项目以加载下一页记录(无限滚动)

在列表的 adaptor 中,我有 2 个正在使用的视图。第一个仅在第一行可见,其他视图将保持所有其他行相同。

我想要达到的目标:

  • 在位置 = 1 的行的顶部,我想要一个粘性标题。这意味着当我向上滚动时,标题将滚动到屏幕顶部并保留在那里。

  • 这个粘性标题只会在一行

  • 如果可能的话,我想使用一个简单的实现,因为我的布局和适配器已经足够复杂了。

等待您的建议。

【问题讨论】:

  • 您可以将列表视图的第一行设置为列表标题。这适用于你吗?

标签: android listview android-listview


【解决方案1】:

我第一次没有完全明白你的问题,这是第二轮的答案尝试。

在你的布局中添加一个空视图组(无论你喜欢哪个,虽然 linearlayout 似乎工作得很好),向你的 listView 添加一个 scrollListener 并检查你的粘性视图的位置。如果它的顶部锚点在屏幕顶部下方(意味着它在列表视图中可见),则您将视图组可见性设置为消失,如果顶部锚点触摸屏幕顶部或下方,则添加该视图或仅添加一个视图喜欢它到视图组并将其可见性设置为可见。

您可以相应地调整位置 2 视图的可见性,以使此更改看起来无缝。一旦您有了一些代码并正在着手进行此更改,可以为您提供更多帮助。

【讨论】:

  • 这行不通。正如我所提到的,当我向上滚动时,我需要将粘性标题保留在屏幕顶部
  • 编辑了我的问题,这就是我第一次尝试的方式。应该可以,你问的不是那么难,但是不可能让列表视图项目神奇地不动,你必须给它添加一些技巧。
猜你喜欢
  • 2019-09-04
  • 1970-01-01
  • 1970-01-01
  • 2021-09-06
  • 1970-01-01
  • 2016-08-08
  • 1970-01-01
  • 2017-11-25
  • 2020-01-30
相关资源
最近更新 更多