2014-01-10 50 views
0

我正在嘗試爲android應用程序創建一個嵌套列表視圖。我essentiall要像完全展開的嵌套列表 - Android

     nested list entry 1 
Outer List Entry1 nested list entry 2 
        nested list entry 3 

         nested list entry 1 
Outer List Entry 2 nested list entry 2 
         nested list entry 3 

如果我有一個外部列表,其中有兩個條目,然後讓裏面有詳細的條目(如果你能想象有星期幾日曆嵌套列表視圖中的某些東西作爲外部列表,並且每天都有如上所述垂直列出的0個或更多個約會的列表)。此外,我希望嵌套列表項可以按照頂級列表的相同方式進行單擊/突出顯示。

我發現查找嵌套列表視圖的大多數信息都是使用ExpandableListViews的建議 - 這是我實現的,但它看起來有點難看,因爲它顯然不是同一個目的(我不想要任何可擴展的東西 - 一切都應該總是完全展開和不可摺疊 - 同樣,無法找到橫向佈置信息而不是垂直佈局 - 但我認爲這可能相對容易?)。

我也在這裏使用了選擇的答案:android nested listview它在演示文稿方面工作正常,但不爲嵌套列表中的每個單獨項目提供相同的列表滾動/突出顯示/點擊行爲。

任何人都可以提出任何替代方案嗎?有沒有實施與上述任何一個類似的佈局?


UPDATE

我想列出的佈局實際上是像上面的文字表示 - 在試圖澄清我想要的佈局,這裏是一個圖像(是的,我知道我也許應該downvoted一個圖的開放式辦公室:)

enter image description here

所以你可以看到,其實我是想在屏幕上看起來像瘸子截圖 - 父/外部列表是一個時間段列表(在這種情況下,它是一週中的幾天,但可能是一天中的幾個小時等),並且對於該外部列表中的每一行,我想要顯示內部列表(給定時間段的約會)作爲與父級水平對齊的嵌套列表。

回答

1

最後回答: 如果你想要一個表格,那麼你應該把它拆分成Fragments。 根視圖應該是ScrollView。 孩子必須水平LinearLayout 每一個下一列都是片段。每個碎片容器應該有一定的重量。 每個片段的根視圖應該是垂直的LinearLayout 確保Frament with days項目的高度恰好是三個「任務」項目高度。 在dimen.xml中對它們進行硬編碼。 爲了方便起見,請製作每個可以設置ListAdapter的Fragment的LinearLayout擴展類。基於ListAdapter填充每一行。 通過這種方式,您可以實現具有固定內容的列表。

或者,如果您不想變得靈活,您可以不使用碎片。 添加新列僅僅是封裝邏輯的片段的問題。

+0

謝謝 - 除非我錯過了一些東西,我不知道這正是我想要的東西 - 它不是我想的不同行不同的佈局一個列表,它更多的是在我的主列表的每一行中,我想要有另一個嵌套的其他細節的列表視圖。 – rhinds

+0

@rhinds以及你可以使用不同的佈局來實現可擴展ListView的外觀。 「標題」列表和每個「標題」下面的子列表。或者,也許我不明白你想達到什麼目的。你想讓它看起來像問題一樣水平嗎?或者僅僅是爲了說明類別是如何組織的? –

+0

好的,所以我已經更新了原始問題 - 是的,我希望佈局能夠像原始插圖一樣,但是我添加了一個蹩腳的屏幕截圖來嘗試進一步說明 - 我會想象這不是一個特別獨特的佈局? – rhinds

1

爲了ExpandableListView不會崩潰,使用

expandableList.setOnGroupClickListener(new OnGroupClickListener() { 
    @Override 
    public boolean onGroupClick(ExpandableListView parent, View v, 
           int groupPosition, long id) { 
    return true; // This way the expander cannot be collapsed 
    } 
}); 
+0

感謝 - 這是很好知道 - 2跟進ups:1)我可以調整佈局,以便可擴展列表水平顯示爲我的文章? 2)你認爲這是合理使用可擴展列表嗎?這是不好的做法(或可怕的黑客)?它不是一個非常不尋常的佈局,所以我認爲它一定已經被解決了很多次。 – rhinds

+0

好吧,所以底線我明白你想要查看水平滾動,你已經嘗試過'Horizo​​ntalScrollView' –

+0

爲什麼我會讓你去'Horizo​​ntalScrollView'會是因爲'ExpandableListView'沒有'android:orientation'屬性,看到這裏爲自己=> http://developer.android.com/reference/android/widget/ExpandableListView.html –