2014-10-06 4 views
-1

하나의 listview (화면 높이보다 훨씬 많은 항목)와 다른 listview (몇 개의 요소 만)가있는 두 개의 단편을 포함하는 활동을 만들고 싶습니다. 조각 A는 조각 B보다 위에 있어야하지만 조각 B의 목록 뷰가 끝까지 스크롤되는 경우에만 조각 B가 표시되어야합니다. 예 : ListView1 (프래그먼트 A)는 (화면 한번에 6 개 항목을 저장할 수있는) 20 개 개의 항목을 포함하고 ListView2 내가가있는 ScrollView 함께 할 수 생각 3 개 항목 ListView below 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> 

포함하지만, 이것은 단지 하나 개의 요소를 보유 할 .

그리고주의해야 할 점이 있습니다. 두 조각 모두 프로그래밍 방식으로 만들어지기 때문에 (동적) 매개 변수를 전달해야하기 때문입니다.

내 문제를 이해하고 처리 할 수 ​​있기를 바랍니다. 둘째,

1)의 LinearLayout을 사용하고 각 목록보기에 대한 무게를 설정합니다 는 항목이 화면의 전체 소요됩니다 당신이이 일을 할 수 있도록 너무 긴 경우

+0

'단편 B의 목록보기가 끝까지 스크롤되는 경우에만 단편 B를 볼 수 있습니다. '단편 A의 바닥 글에있는보기에 단편을 넣지 않으면 목록보기가 표시되지 않습니다. 여기에 적합하지 않습니다. MergeAdapter (https://github.com/commonsguy/cwac-merge)를 사용하여 같은 ListView에 모든 요소를 ​​넣으려고하는 것이 좋습니다 – njzk2

+0

어댑터 클래스에서 getItemView() 및 getItemViewTypeCount() 항목 유형을 사용할 수 있습니다. 단일 목록 및 단일 어댑터로 원하는 것을 얻으십시오. – zgc7009

답변

0

하면, wrap_content 먼저 목록보기 높이를 설정 감사 listView 가시성이 사라져야하고 첫 번째 ListView에 대해 onScrollListener를 설정하고 firstVisibleItem + visibleItemCount >= allItem 목록이 끝나면 이제 두 번째 listView의 가시성을 true로 변경할 수 있는지 확인하십시오.

2) linearLayout을 사용하지 말고 (1)과 같은 다른 작업을 수행하고 첫 번째 listView의 높이를 동적으로 변경하십시오.