2

リストに現在表示されている項目よりも多くの項目がある場合、高速スクロールを有効にして表示するように設定しようとしています。アダプターを設定した後、ListView のカウントは適切に増加しますが、最後に表示される位置は増加しません。その結果、私は現在、ListView がどの項目が表示されているか/表示されていないかを判断するまで待機する Runnable を投稿しています。コードは次のとおりです。

listView.post(new Runnable(){
    @Override
    public void run() {
        if(listView.getLastVisiblePosition() < (listView.getCount() - 1)){
            listView.setFastScrollAlwaysVisible(true);
            listView.setFastScrollEnabled(true);
        }
    }
});

このソリューションは問題なく機能しますが、少しハックのように感じます。ランナブルを投稿せずに、最後の表示位置がいつ更新されたかを知る方法はありますか? 前もって感謝します!

4

0 に答える 0