gpt4 book ai didi

android - 如何在滚动 ListView 上显示类似 Whatsapp 的日期

转载 作者:行者123 更新时间:2023-12-03 19:46:20 25 4
gpt4 key购买 nike

当我像在 WhatsApp 中一样滚动 ListView 时,如何在应用程序中显示日期?
为了清楚起见,请参见下图:

enter image description here

当我滚动 ListView 时,日期会显示在列表上。
如果您仍然不明白我的问题,请打开您的 WhatsApp,进入任何群组并开始滚动:您将看到旧文本显示的日期。

enter image description here

最佳答案

enter image description here

要显示像此屏幕截图这样的日期,您可以使用

val firstVisiblePosition = layoutManager.findFirstVisibleItemPosition()
if (getDateFromFirebaseTime(messageArrayList[firstVisiblePosition].timestamp.toString().toLong()).isNotEmpty()) {
tvDay.visibility = View.VISIBLE
tvDay.text = getDateFromFirebaseTime(messageArrayList[firstVisiblePosition].timestamp.toString().toLong())
} else {
tvDay.visibility = View.GONE
}

我在这里所做的是获取 RecyclerView 列表的第一个可见项目的索引,然后从该索引中获取消息的时间戳并将其显示在 TextView tvDay 使用函数 getDateFromFirebaseTime()
上面的代码是在ScrollListener的RecyclerView的这个方法中添加的
override fun onScrolled(recyclerView: RecyclerView, dx: Int, dy: Int) {
super.onScrolled(recyclerView, dx, dy)
Log.d("scroll", "scrolling")
//added here
}

备注 : 这里 tvDay在 XML 中添加 RecyclerView可用。 RecyclerViewtvDayRelativeLayout 的同一个 child 和 tvDay设为 android:layout_centerHorizontal="true"将其保持在顶部中心。

关于android - 如何在滚动 ListView 上显示类似 Whatsapp 的日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39397127/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com