我尝试使用视图模式来提高列表视图的速度。一切正常,但我对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的引用打印数字一样。有没有办法将对齐设置为它的初始状态,以便重新计算它以在其正确的位置打印新数字?
答案 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);