2011-11-17 77 views
0

我想在我的android應用程序中顯示來自非常通用的JSON字符串的數據。一個視圖/屏幕應顯示任意數量的「細節」,其中每個細節具有任意數量的「值」。我試圖在一個ListView中使用一個ListView,並且所有的數據很好地放入每個列表中,但列表不會完全顯示(見下圖)。無法在Android應用程序中正確查看列表視圖中的列表視圖

在屏幕的下半部分是第一個ListView。它包含許多TextView標籤(例如Usage and Info),它們又有許多值(單位,sw版本等)。這些值放在顯示TextView的新列表中。

頂部也是一個ListView,但顯示正常。

看起來像這樣:

第一部分,與所述兩個列表,第一個(細)和第二(問題)狀態選項卡:

<LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" android:id="@+id/tabStatus"> 

     <ListView android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="vertical" android:layout_weight="1" android:id="@+id/listThingStatus"/> 

     <ListView android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="vertical" android:layout_weight="1" android:id="@+id/listThingDetails"/> 

    </LinearLayout> 

與標籤和第二ListView的下部的ListView:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  
      android:layout_width="fill_parent" android:layout_height="70px">  
       <LinearLayout android:orientation="vertical" android:layout_width="0dip" android:layout_weight="1" android:layout_height="wrap_content">  
        <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="30px" android:id="@+id/textDetails" /> 
        <ListView android:layout_width="fill_parent" android:layout_height="wrap_content" android:id="@+id/listThingValues"/>             
       </LinearLayout> 
    </LinearLayout> 

最後第二的ListView內TextViews:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  
      android:layout_width="fill_parent" android:layout_height="70px">  
       <LinearLayout android:orientation="horizontal" android:layout_width="0dip" android:layout_weight="1" android:layout_height="wrap_content" android:gravity="center_vertical"> 
        <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="30px" android:id="@+id/textValuesLabel" />   
        <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:textSize="30px" android:gravity="right|center" android:id="@+id/textValuesUnits" />  
       </LinearLayout> 
    </LinearLayout> 

結果是這樣的(見圖片),其中內部列表中的內容大部分是「隱藏」的(SW版本和下面的文本等)。我幾乎在任何地方都使用「wrap_content」,但內容太包裹在這裏:(。我如何以及在何處格式化我的XML以使內部列表中的內容正確顯示?

圖像(來自仿真器,但手機上的結果相同): http://i.imgur.com/8mcDq.png

+0

你有沒有考慮使用ExpandableListview代替嵌套的列表視圖,你做的方式。 ? – Marmoy

+0

Android應用程序應具有與等效的iPhone應用程序相同的外觀,以便列表類型目前不是選項。將建議這一點,但。謝謝! – Christoffer

+0

您可以自定義可擴展列表的外觀,但是您想介紹一下它在這種情況下不適用的方式嗎? – Marmoy

回答

1

放置一個ListView一個ListView內只會給你帶來麻煩

嘗試使用ExpandableListView代替

+0

呵呵。正如我上面所說,現在不是一個選項。將繼續嘗試並使當前列表正常工作,直到允許我使用另一個外觀佈局。謝謝! – Christoffer

+0

@Christoffer:如果第二個列表具有*有限的*數量的行,則使用「LinearLayout」並動態添加行。如果你需要放置兩個'ListView',你將需要自己處理觸摸。相信我,那隻會帶來痛苦和痛苦:) – Macarse

+0

好吧,嘗試將行添加到LinearLayout而不是第二個列表中,並且它效果更好。謝謝! – Christoffer