ネイティブカレンダーのアジェンダと同じように、カレンダーのアジェンダを表示する必要があるアプリケーションを開発しています。さまざまなイベントを表示するリストビューがあります(注:質問のコンテキストでは、イベントはシステムのエンティティです)。この画面に「今日」ボタンを表示したい。ユーザーがこのボタンをクリックすると、現在の日のスケジュールの最初のイベントが画面の上部に表示されるまで、イベントがスクロールされることになっています。この問題は、今日から予定されているイベントが非常に少ないために画面全体に表示されない場合に発生します。次に、リストビューは、カレンダーの最後のイベントが一番下になるまでスクロールします。これは通常、今日の最初のイベントを上に置くという望ましい効果が達成されないことを意味します。
これをどのように行うことができるかについての提案はありますか?最後にいくつかの空白の要素を追加することを考えましたが、これは醜い回避策のようです。さらに、挿入する要素の数を示す特別なデバイス固有の計算が必要になります。
編集:
コメントで要求されたようにいくつかのコードを追加する
実際には、このコードが誰かを驚かせるかどうかはわかりませんが、:
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);
}
}
質問への回答を支援するためにレイアウトの定義が重要かどうかはわかりませんが、そう思う場合は追加することもできます。