Android 在viewholder图案中重置支架中的对齐方式

Android 在viewholder图案中重置支架中的对齐方式,android,android-listview,text-alignment,android-viewholder,Android,Android Listview,Text Alignment,Android Viewholder,我正在尝试使用viewholder模式来提高ListView中的速度。一切正常,但我对文本视图的对齐有问题。这是我遇到问题的TextView的XML: <TextView android:layout_width="40dp" android:layout_height="wrap_content" android:layout_m

我正在尝试使用viewholder模式来提高ListView中的速度。一切正常,但我对文本视图的对齐有问题。这是我遇到问题的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千牛,在5和千牛之间有一个空格,如果之前的值大于99,它将打印5千牛,有两个空格。这就像是保留11的参考来打印数字。有没有办法将对齐设置为初始状态,以便重新计算以在正确位置打印新数字?

尝试在相关文本视图上设置Gravity.RIGHT

textView.setGravity(Gravity.RIGHT)
android:layout_gravity仅设置父视图中整个视图的重力,而不是TextView中文本的重力


或者,将文本视图的宽度设置为LayoutParams.WRAP\u CONTENT而不是固定值。

最终我找到了解决方案,我只需通过编程方式重置布局:

LinearLayout.LayoutParams params = (LinearLayout.LayoutParams)holder.windAverageText.getLayoutParams();
params.gravity = Gravity.RIGHT;
holder.windAverageText.setLayoutParams(params);

显示整个xml布局。。