2010-11-11 66 views
0

我的應用程序需要能夠以用戶選擇的順序在一行上添加幾個視圖。ANDROID:適配器位置返回到零,並重新添加視圖到ListView

我發現這個教程似乎完成了我想要的一些修改。

http://www.androidpeople.com/android-custom-listview-tutorial-example/ 

已經跟着教程,並進行必要的變更,代碼工作,除了一個奇怪的問題。位置遞增,但當它到達〜9時,它返回到零,然後重新添加已經在列表中的視圖,因此永遠不會達到> 9的視圖。

此外,如果我向下滾動到底部,然後備份第一個條目已經改變!它可能會改變更多,但我沒有檢查。

通過一些測試,我發現textSize有一些效果。如果我將它設置得足夠小,以便所有'行'將一次顯示在屏幕上,那麼它們顯得很好。

這是我的列表視圖的佈局,被膨脹成主要佈局:

<?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="wrap_content" 
    android:minHeight="60dip" 
    style="@style/DefaultTheme"> 
    <TextView 
     android:id="@+id/Line01" 
     android:layout_width="5dip" 
     android:layout_height="fill_parent" 
     android:background="#F00" /> 
    <TextView 
     android:id="@+id/Line02" 
     android:layout_width="5dip" 
     android:layout_height="fill_parent" 
     android:background="#0F0" /> 
    <TextView 
     android:id="@+id/Line03" 
     android:layout_width="5dip" 
     android:layout_height="fill_parent" 
     android:background="#00F" 
     android:layout_marginRight="5dip"/> 
    <LinearLayout 
     android:id="@+id/LinearLayout" 
     android:layout_weight="1" 
     android:layout_width="wrap_content" 
     android:layout_height="fill_parent" 
     android:orientation="vertical" 
     android:padding="2dip"> 
     <TextView android:id="@+id/Name" 
      android:text="Name" 
      style="@style/Name" /> 
     <TextView 
      android:id="@+id/Status" 
      android:text="Status" 
      style="@style/Status" /> 
    </LinearLayout> 
    <ImageView 
     android:id="@+id/StatusImage" 
     style="@style/StatusImage" /> 
</LinearLayout> 

我改變背景顏色和文字,但僅此而已。任何想法是什麼問題?

謝謝!

回答

0

我現在問這個問題並且不會完全回到教程中,我覺得這很愚蠢。

我只是在創建一個新的ViewHolder的時候,在我的佈局中設置了我放置在我的主佈局上的ListView中的值。因此,當我滾動時,視圖被回收,但從未使用正確的視圖設置進行更新。

現在一切正常!

乾杯

0

這是因爲ListView回收視圖。它根據需要創建儘可能多的視圖,然後將不可用的視圖作爲下一個回收。

所以你必須在適配器的getView或bindView方法中設置顏色/屬性。

而順便說一句。您發佈的內容不會誇大ListView,因爲它中沒有「對象」。充其量,它可能是一個單一的ListView項目,但不是列表視圖本身^^

+0

我可能不完全明白膨脹的手段,然後......這樣的佈局被添加到ListView中我主要佈局:S – neildeadman 2010-11-11 09:22:43

+0

文本所有的細節和顏色都在適配器的getView方法和設置當它們出現時都顯示正確。我的問題是位置被重置,並且相同的佈局再次被添加到列表視圖 – neildeadman 2010-11-11 09:24:08

相關問題