Я разрабатываю приложение, которое должно отображать календарную повестку дня, так же, как повестка дня в собственном календаре.У меня есть представление списка, показывающее различные события (Примечание: в контексте вопроса события - это сущность моей системы).Я хочу предоставить кнопку «Сегодня» на этом экране.Когда пользователь нажимает на эту кнопку, события должны прокручиваться до тех пор, пока первое событие текущего дневного графика не появится в верхней части экрана.Проблема возникает, когда у меня запланировано всего несколько событий с сегодняшнего дня - настолько мало, что они не заполняют весь экран.Затем представление списка просто прокручивается, пока последнее событие в календаре не окажется внизу.Обычно это означает, что желаемый эффект от проведения первого сегодняшнего события сверху не достигается.
Есть предложения, как это можно сделать?Я думал о добавлении некоторых пустых элементов в конце, но это кажется уродливым обходным путем, и, кроме того, потребуются специальные вычисления для конкретного устройства, которые подскажут мне, сколько элементов нужно вставить.
Редактировать :
Добавление некоторого кода в соответствии с запросом в комментарии
На самом деле я не уверен, что этот код кого-нибудь удивит, но:
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);
}
}
Я не уверен, что определение макетаважно помочь в ответе на вопрос, но если вы так думаете, я тоже могу добавить его.