0

ビューホルダーのパターンを使用して、リストビューの速度を改善しようとしています。すべて正常に動作しますが、TextView の配置に問題があります。これは、私が問題を抱えている TextView の XML です。

                    <TextView
                    android:layout_width="40dp"
                    android:layout_height="wrap_content"
                    android:layout_marginTop="-5dp"
                    android:text="200"
                    android:textSize="23sp"
                    android:id="@+id/windAverage"
                    android:layout_gravity="right"/>

このテキストビューには数字があります。9 より大きい数字のホルダーを再利用すると、次のような問題が発生します。

このテキストビューには 11 の行があり、ユーザーには「11kn」と表示されます。11 は kn に近いため、これは問題ありません。ユーザーがスクロールし、この行の所有者を受け取って再利用し、たとえば、テキストを 11 から 5 に設定すると、前の値が大きかった場合、5 と kn の間に空白がある「5 kn」がユーザーに表示されます。 99 よりも大きい場合、5 kn と 2 つの空白が出力されます。数字を印刷するために 11 の参照を保持しているようです。新しい数値を正しい位置に印刷するために再計算されるように、配置を初期状態に設定する方法はありますか?

4

2 に答える 2

0

最後に解決策を見つけました。layout_gravity をプログラムでリセットするだけで済みました。

LinearLayout.LayoutParams params = (LinearLayout.LayoutParams)holder.windAverageText.getLayoutParams();
params.gravity = Gravity.RIGHT;
holder.windAverageText.setLayoutParams(params);
于 2014-11-02T03:32:11.537 に答える