0

データセットの例: "A"、"B"、"C"、"D"

ListView を次のように表示したい: "A"  | "B" | "C"

「A」の詳細を複数の列に表示しようとしているわけではありません。行ごとに 1 つではなく 3 つの項目を表示したいのです。GridView を使用したくありません。

現在、私はこれを行うことに成功しています。

私が使う:

public int getCount() {
    if(dataSource!=null){
        return (int) Math.ceil((double)dataSource.size()/3.0f);
    }
    return 0;
}

getView 部分では、position*3 を使用して次の 3 つの項目の最初の位置を取得し、それに応じてビューを作成します (i+1,i+2)。それは完全に機能します。ただし、リストの一部のみが描画されます。スクロールバーは正しく、さらにスクロールできることを示していますが、リストの半分が描画される前に、突然次の半分が描画されず、スクロールバーが一番下に触れます。

だから、私の3による除算は何かを台無しにしています..カウントを3で除算しないと、すべてのアイテムが描画されますが、スクロールバーには実際の高さの3倍が表示されます( 3列。

ここで何が欠けていますか?

4

1 に答える 1

0

問題は、getView() 関数で合計行数を正しく適用していませんでした。今では動作します。@scompt.com に感謝します。

于 2013-03-03T17:47:56.707 に答える