0

各行に 3 つの TextView がある ListView を使用しています。シンプルですね。

幅を固定するのではなく重みを使用したいのですが、何らかの理由で本当にうまくいかないようです。

これは私の行のレイアウトです:

    <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>

下にスクロールしてアイテムを選択し、上にスクロールするまで、すべて問題ないように見えます。(選択した行を強調表示するための特別なコードがありますが、それは問題ではないと確信しています)

最初のリストビューは次のようになります (まったく問題ありません)。 listviewWeightsInitial

アイテムをクリックした後に上にスクロールすると、次のようになります。

scrollingBackUp

余分なスペースがたくさんあります (大きな灰色のブロック)

さらに上にスクロールすると、次のようになります。

さらにスクロールアップ

テキストの一部も台無しになります。

重みを使用する代わりに、テキストビューの幅を修正することで問題を軽減できます。

私は無知です。私はリストビューの経験が少しありますが、今まで常に固定サイズのものを使用しており、問題はありませんでした。

ありがとう!

4

1 に答える 1

0

myView.invalidate()クリックで電話をかけようとしましたか?

于 2012-12-12T23:36:08.507 に答える