如何制作一个只在android屏幕上浮动的粘性列表项?
Posted
技术标签:
【中文标题】如何制作一个只在android屏幕上浮动的粘性列表项?【英文标题】:How to make a sticky list item which will float only within the screen on android? 【发布时间】:2014-04-25 22:52:06 【问题描述】:对于粘性页眉和页脚有很多解决方案。但我想要的是制作一个粘性项目,它将首先显示在列表顶部,向下滚动粘性项目时,列表将滚动到屏幕末尾而不是列表末尾。
所以它只会在屏幕内浮动。我试图找到解决方案 2 天,但找不到任何有效的方法。
你可以看看这个例子:https://www.numbrs.com/ 我想要的是将顶部的文本信息作为一个列表项,不会走出屏幕,以便更好地指示过去和未来的项目。
您有什么解决方案或建议吗?
【问题讨论】:
【参考方案1】:你应该破解这些项目。
https://github.com/bauerca/drag-sort-listview
https://github.com/LarsWerkman/QuickReturnListView
“drag-sort-listview”显示了一种创建浮动列表项视图副本的方法。您必须扩展 ListView
并覆盖 OnDraw(Canvas)
或 dispatchDraw(Canvas)
方法才能绘制浮动视图。 别忘了调用setWillNotDraw(false)
和invalidate()
来成功更新视图。
“QuickReturnListView”显示获取和缓存其他列表项视图的垂直位置。这些位置用作浮动视图将被放置的参考。 translateY()
方法用于移动浮动视图。
注意: 早期版本的“drag-sort-listview”用于通过添加WindowManager
来绘制浮动视图,而不是在最新版本中在ListView
中绘制视图。就我个人而言,我用旧的方式成功了,但没有用最新的版本。我的问题是 OnDraw()
或 dispatchDraw()
方法没有被调用。我找不到为什么会发生这种情况,只是在 SO 和谷歌上找到。如果你知道请告诉我。
更新:我可能误解了你想要什么。我无法测试您的示例,因为我没有任何 ios 设备。如果我理解你,this 一定是正确答案。
【讨论】:
以上是关于如何制作一个只在android屏幕上浮动的粘性列表项?的主要内容,如果未能解决你的问题,请参考以下文章
如何按住浮动按钮并将其移动到 android 屏幕上的任何位置?
如何在 RecyclerView 中制作粘性标题? (没有外部库)