以视图符号模式重置支架中的对齐

时间:2014-11-01 04:43:16

标签: android android-listview text-alignment android-viewholder

我尝试使用视图模式来提高列表视图的速度。一切正常,但我对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的持有者时,会出现问题,例如:

在这个textview中有一行有11个,用户会看到&#34; 11kn&#34;这是好的,因为11接近kn。当用户滚动并且我收到该行的持有者以重复使用它并将文本从11设置为5时,用户将看到&#34; 5 kn&#34;在5和kn之间有一个空格,如果前一个值大于99,它将打印5 kn,两个白色空格。这就像保持11的引用打印数字一样。有没有办法将对齐设置为它的初始状态,以便重新计算它以在其正确的位置打印新数字?

2 个答案:

答案 0 :(得分:0)

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

textView.setGravity(Gravity.RIGHT)

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

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

答案 1 :(得分:0)

最后我找到了解决方案,我只需要以编程方式重置layout_gravity:

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