Android 滚动后ListView中的布局混乱

Android 滚动后ListView中的布局混乱,android,textview,Android,Textview,我有一个带有自定义适配器的ListView,它创建的行中包含可能有1行或2行文本的TextView news_row.xml: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height=

我有一个带有自定义适配器的ListView,它创建的行中包含可能有1行或2行文本的TextView

news_row.xml:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="horizontal">

    <TextView android:id="@+id/text"
        android:layout_width="fill_parent"
        android:layout_height="48dip"
        android:padding="6dp"
        android:textSize="14sp">
    </TextView>
</LinearLayout>
滚动后,一些单行文本视图与行的顶部对齐,一些两行文本视图位于行的底部。当最初包含两行文本视图的行被赋予一行文本时,问题似乎就发生了,反之亦然


我原以为在getView中设置重力可以解决这个行回收问题,但这肯定是另外一回事。如果每次循环使用行时都以编程方式创建TextView会怎么样?这就是“重置”它所需要的吗?

行视图在listView中重复使用。前十个(我猜是10个或更少)第一次充气,并设置尺寸/重力等。当用户在可见行下方滚动时,最上面的行被回收并馈送到下一行。因此,最上面一行的视图将重新用于下一行。如果您的第一行和下一行的行数不同,则您看到的行为是预期的

解决方案。在初始充气过程中设置文字重力和行数,无论行数多少,所有行的大小都相同。你不应该再看到你所观察到的波动


有关更多详细信息,请参见此说明。

解决方案是设置textView的行数(如Veeresh所述),但不是在初始充气期间

titleView.setLines(2);

不完全令人满意(如果我有
n
行怎么办?),而且考虑到布局文件中已经明确设置了textView的高度,这甚至没有意义。哦,好吧。

我不明白-在初始充气过程中如何设置管路数?无论行数多少,我都希望文本居中。本教程暗示我希望使用不同的布局来获得这个结果,这对我来说没有意义。我甚至不知道如何确定TextView渲染文本需要多少行。
titleView.setLines(2);