我正在开发一个需要显示日历议程的应用程序,就像本机日历中的议程一样。我有一个显示不同事件的列表视图(注意:在问题的上下文中,事件是我系统的实体)。我想在这个屏幕上提供一个“今天”按钮。当用户单击此按钮时,应该滚动事件,直到当前日程的第一个事件出现在屏幕顶部。当我从今天开始只安排了几个活动时,就会出现问题 - 活动太少以至于无法填满整个屏幕。然后列表视图会滚动,直到日历中的最后一个事件位于底部。这通常意味着没有达到将今天的第一个事件放在首位的预期效果。
任何建议如何做到这一点?我曾想过在最后添加一些空白元素,但这似乎很难解决,而且它需要特殊的设备特定计算来告诉我要插入多少元素。
编辑:
根据评论中的要求添加一些代码
实际上我不确定这段代码会让任何人感到惊讶,但是:
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);
}
}
我不确定布局定义对于帮助回答问题是否重要,但如果你这么认为,我也可以添加它。