我正在创建一个日历。这是一个包含日期和事件的相当简单的日历。该设计要求日历是 ListView 其中
date
event
event
event
event
event
event
date
event
event
event
event
event
event
event
date
event
event
….
唯一的问题是最上面的日期必须始终可见。它不能滚动出屏幕。除非下一个日期到达顶部,它现在必须成为顶部日期并保持可见,直到序列中的下一个日期取代它。
所以对于我的设计,我有一个带有两个子视图的 RelativeLayout:一个 TextView 和一个 ListView
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#F0F1F3"
tools:context=".MyAppActivity" >
<TextView …/>
<ListView … />
</RelativeLayout>
然后在MyAppActivity.java
我setOnScrollListener
用来跟踪滚动以便知道何时将我的 TextView 中的值设置为最高日期。通过使用 TextView,我确保顶部日期始终可见。
但问题如下。如果当前的最高日期是 date1,下一个日期是 date2。当 date2 即将成为最高日期时:我需要某种动画,显示 date2 将 date1 推开以成为最高日期。
我一直在尝试一些东西,例如当firstVisibleItem
我将 TextView 的值从 date1 的值替换为 date2 的值时删除 date2。但这种方法令人生畏,因为如果用户向后滚动,他应该会看到上一个日期;等等等等
有谁知道我如何通过将 date2 推开来让 date2 取代它?
或者更好:
有没有办法告诉 listView 将某个项目保留在可见项目的顶部?