2011-11-06 28 views
1

我有一個ListView與適配器呈現的自定義視圖。它包含一個圖像,一些文本和另一個ListView。在適配器I的創建者的getView方法中,另一個適配器設置嵌入的ListView。嵌入在另一個ListView高度不包裝的Android ListView

它一切正常,但由於某種原因,嵌入ListView的高度只能查看一個列表項。如果我手動將高度設置爲像素,我可以在列表中看到更多項目。所有高度都設置爲wrap_content,所以我不確定它爲什麼不起作用。

我第一次的ListView看起來像這樣:

<ListView 
    android:id="@+id/newswire" 
    android:layout_width="wrap_content" 
    android:layout_height="fill_parent" 
    android:cacheColorHint="#ffffff" 
/> 

是被渲染爲這個ListView中的項目:

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

     <ImageView 
      android:id="@+id/aggSparkAvatar" 
      android:layout_width="45dp" 
      android:layout_height="45dp" 
      android:scaleType="centerCrop" 
     /> 

    <LinearLayout 
     android:orientation="vertical" 
     android:paddingLeft="10dp" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
    > 

     <TextView 
       android:id="@+id/aggSparkName" 
       android:layout_width="fill_parent" 
       android:layout_height="wrap_content" 
       android:textColor="#1B5F7C" 
       android:textStyle="bold" 
     /> 

     <TextView 
       android:id="@+id/aggSparkDateStamp" 
       android:layout_width="fill_parent" 
       android:layout_height="wrap_content" 
       android:textColor="#000000" 
       android:textStyle="bold" 
     /> 

     <View 
      android:layout_height="1dp" 
      android:layout_width="fill_parent" 
      android:background="#F2F2F2"    
     /> 

     <ListView 
      android:id="@+id/aggSparkList" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:cacheColorHint="#ffffff" 
     /> 

    </LinearLayout> 

</LinearLayout> 

然後嵌入式ListView的每個項目看起來是這樣的:

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

     <ImageView 
      android:id="@+id/sparkAvatar" 
      android:layout_width="45dp" 
      android:layout_height="45dp" 
      android:scaleType="centerCrop" 
     /> 

    <LinearLayout 
     android:orientation="vertical" 
     android:paddingLeft="10dp" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
    > 
     <TextView 
      android:id="@+id/sparkTitle" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:textColor="#000000" 
      android:textStyle="bold" 
     /> 

     <TextView 
      android:id="@+id/sparkText" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:textColor="#000000" 
     /> 

     <TextView 
      android:id="@+id/sparkDateStamp" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:textColor="#A2A2A2" 
     /> 

    </LinearLayout> 

</LinearLayout> 

回答

0

在另一個可滾動視圖中包含可滾動視圖絕不是一個好習慣。你應該考慮重新設計你的應用程序。

在你的情況下,你嵌入的ListView設置爲wrap_content, wrap_content - 也不是推薦的做法。一個ListView被設計爲顯示一個項目的列表,這些項目的集合對於屏幕一次顯示來說太大了。使用wrap_content, wrap_content沒有多大意義。

+0

謝謝,我只使用嵌入的ListView,因爲我有另一個活動,只是使用該視圖,所以認爲我只是重用它。你的權利,在這種情況下,我應該只是使用幾個線性佈局,因爲我只想顯示嵌入式ListView的2個項目。 – Joe