我正在开发一个应用程序,需要显示日历议程,就像原生日历中的议程一样。我有一个列表视图,显示不同的事件(注:在问题的上下文中,“事件”是我的系统实体)。我希望在这个屏幕上提供一个“今天”按钮。当用户点击此按钮时,应该滚动事件,直到当前日期的第一个事件出现在屏幕顶部。问题出现在我只安排了几个事件,以至于他们无法填满整个屏幕。然后,列表视图会滚动到日历中的最后一个事件处于底部。这通常意味着无法实现希望将今天的第一个事件置于顶部的效果。
有什么建议可以解决这个问题吗?我考虑添加一些空元素,但这似乎是一个丑陋的变通方法,而且还需要特殊的设备特定计算来告诉我要插入多少个元素。
编辑: 添加一些代码,如评论中所请求的。 实际上,我不确定这段代码是否会让任何人感到惊讶,但:
我不确定布局定义是否对于回答问题有帮助,但如果您认为有用的话,我也可以添加。
有什么建议可以解决这个问题吗?我考虑添加一些空元素,但这似乎是一个丑陋的变通方法,而且还需要特殊的设备特定计算来告诉我要插入多少个元素。
编辑: 添加一些代码,如评论中所请求的。 实际上,我不确定这段代码是否会让任何人感到惊讶,但:
public void onTodayClicked(View target) {
// calculate the indexOf. It works and is not related to the question
if (indexOf >= 0) {
ListView list = (ListView) findViewById(R.id.events_list_view);
list.setSelection(indexOf);
}
}
我不确定布局定义是否对于回答问题有帮助,但如果您认为有用的话,我也可以添加。