我正在使用ListView,其中每行有3个TextView。很简单吧?
我想使用重量而不是固定宽度,但这似乎真的搞砸了。
这是我的行的布局:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#f0f0f0"
android:weightSum="7">
<TextView
android:id="@+id/listCaseName"
android:gravity="left"
android:layout_weight="3"
android:width="0dp"
android:textSize="18dp"
android:textStyle="bold"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:lines="1"
android:ellipsize="end" />
<TextView
android:id="@+id/listCaseStatus"
android:layout_weight="2"
android:textSize="20dp"
android:gravity="center"
android:width="0dp"
android:layout_width="0dp"
android:layout_height="wrap_content" />
<TextView
android:id="@+id/listPDF"
android:layout_weight="2"
android:gravity="center"
android:textSize="20dp"
android:width="0dp"
android:layout_width="0dp"
android:layout_height="wrap_content" />
</LinearLayout>
一切都很好看,直到我向下滚动,选择一个项目并向上滚动。 (我有一些特殊的代码用于突出显示所选行,但我很确定这不是问题)
这是listview最初的样子(非常好):
这是我点击项目后向上滚动的样子:
有一堆额外的空间(大灰块)
当我向上滚动时,它看起来像这样:
一些文字也搞砸了。
我可以通过修复textviews的宽度而不是使用权重来缓解这个问题。
我很无能为力。我对listviews有一些经验,但直到现在我总是使用固定大小的东西,从来没有遇到任何麻烦。
谢谢!
答案 0 :(得分:0)
您是否尝试点击myView.invalidate()
?