リストに現在表示されている項目よりも多くの項目がある場合、高速スクロールを有効にして表示するように設定しようとしています。アダプターを設定した後、ListView のカウントは適切に増加しますが、最後に表示される位置は増加しません。その結果、私は現在、ListView がどの項目が表示されているか/表示されていないかを判断するまで待機する Runnable を投稿しています。コードは次のとおりです。
listView.post(new Runnable(){
@Override
public void run() {
if(listView.getLastVisiblePosition() < (listView.getCount() - 1)){
listView.setFastScrollAlwaysVisible(true);
listView.setFastScrollEnabled(true);
}
}
});
このソリューションは問題なく機能しますが、少しハックのように感じます。ランナブルを投稿せずに、最後の表示位置がいつ更新されたかを知る方法はありますか? 前もって感謝します!