2014-10-06 41 views
-1

我想有一個活動,其中包含兩個片段,其中一個列表視圖(比屏幕高度可容納更多的項目)和一個與另一個列表視圖(只有幾個元素)。片段A應該在片段B之上,但片段B應該只有在片段A中的列表視圖滾動到結尾時纔可見。 一個例子:ListView1的(片段A)含有20項(屏幕可以同時持有6項)和ListView2包含3項ListView下面ListView(與許多項目)

Initial view   Scrolled down to end of ListView1 

|----------------|  |-----------------| 
| ListView1Item1 |  | ListView1Item19 | 
| ListView1Item2 |  | ListView1Item20 | 
| ListView1Item3 |  |     | 
| ListView1Item4 |  | ListView2Item1 | 
| ListView1Item5 |  | ListView2Item2 | 
| ListView1Item6 |  | ListView2Item3 | 
|----------------|  |-----------------| 


<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

    <FrameLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:isScrollContainer="false" 
     android:id="@+id/containerOverview"></FrameLayout> 

    <FrameLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:id="@+id/containerKommentar" 
     android:layout_below="@+id/containerOverview" 
     android:layout_alignParentLeft="true" 
     android:layout_alignParentStart="true"></FrameLayout> 

</RelativeLayout> 

我想我可以用滾動型做,但是這隻能容納一個元件。

有一點需要注意:我的兩個碎片都是以編程方式創建的,因爲我需要將一些(動態)參數傳遞給它。

我希望你能理解我的問題,並且有辦法處理它。 謝謝

+0

'但片段B只應該是可見的,如果片段A中的列表視圖滾動到結尾.'不可能,除非您將片段放在片段A的頁腳中的視圖中,但是然後,列表視圖會在這裏不適合。我建議嘗試將所有元素放在同一個ListView中,可能使用MergeAdapter(https://github.com/commonsguy/cwac-merge) – njzk2 2014-10-06 20:34:28

+0

您可以使用適配器類中的項目類型getItemView()和getItemViewTypeCount()通過單個列表和單個適配器實現您想要的功能。 – zgc7009 2014-10-06 20:38:42

回答

0

你第一次的ListView設置高度爲wrap_content,如果產品過於長,所以將採取全屏幕,你可以做兩件事:

1)使用的LinearLayout併爲每個ListView控件設置權重,第二listView的可見性應該消失了,你爲你的第一個ListView設置onScrollListener,並檢查firstVisibleItem + visibleItemCount >= allItem那麼你的列表到目前爲止你可以改變第二個listView的可見性爲true。 2)不使用linearLayout並且做與(1)相同的其他事情,而且還動態改變第一個listView的高度。