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 和两个空格。就像它保留 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 回答
0

尝试在有问题的 TextView 上设置 Gravity.RIGHT。

textView.setGravity(Gravity.RIGHT)

android:layout_gravity只设置整个视图在其父视图中的重力,而不是TextView内部文本的重力。

或者,将 TextView 的宽度设置为 LayoutParams.WRAP_CONTENT 而不是固定值。

于 2014-11-01T04:59:32.733 回答