2014-12-01 3 views
1

NavigationDrawer의 스크롤을 처리하는 데 문제가 있습니다. 3 개의 헤더가있는 3 개의 listview가 있습니다. 나는 listview가 그들의 내용에 그들의 높이를 감쌀 수 있기를 원한다. 분명히 마지막리스트 뷰가 완전히 레이아웃에 남아있을 수 없다면이 방법으로 스크롤하지 않고 선형 레이아웃을 스크롤해야합니다. 몇 가지 방법을 시도했지만 해결하지 못했습니다. 그 중 하나는 ScrollView 안에 선형 레이아웃을 넣는 것이 었습니다.하지만 시도했을 때 listview의 내용이 각각 한 줄로 줄어 들었습니다.Fix NavigationDrawer 스크롤

여기 enter image description here

은 다음과 같습니다

여기

enter image description here

내가 스크롤로 가져올 것입니다 : 여기

내가합니다 (있는 ScrollView 시도하지 않고) 지금 얻을 수있는 무슨이다 내 XML 코드 (ScrollView 시도하지 않고) :

<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/drawer_layout" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" > 

    <FrameLayout 
     android:id="@+id/content_frame" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" > 
    </FrameLayout> 

    <LinearLayout 
     android:layout_width="240dp" 
     android:layout_height="wrap_content" 
     android:layout_gravity="start" 
     android:orientation="vertical" 
     android:id="@+id/drawer_container"> 

     <ListView 
      android:id="@+id/drawer_list" 
      android:layout_width="240dp" 
      android:layout_height="wrap_content" 
      android:layout_gravity="start" 
      android:choiceMode="singleChoice" 
      android:divider="@android:color/transparent" 
      android:dividerHeight="0dp" 
      android:background="#fff"> 
     </ListView> 

     <ListView 
      android:id="@+id/drawer_list2" 
      android:layout_width="240dp" 
      android:layout_height="wrap_content" 
      android:layout_gravity="start" 
      android:choiceMode="singleChoice" 
      android:divider="@android:color/transparent" 
      android:dividerHeight="0dp" 
      android:background="#fff"> 
     </ListView> 

     <ListView 
      android:id="@+id/drawer_list3" 
      android:layout_width="240dp" 
      android:layout_height="wrap_content" 
      android:layout_gravity="start" 
      android:choiceMode="singleChoice" 
      android:divider="@android:color/transparent" 
      android:dividerHeight="0dp" 
      android:background="#fff"> 
     </ListView> 
    </LinearLayout> 
</android.support.v4.widget.DrawerLayout> 

이 질문의 긴 내용을 유감스럽게 생각하지만 명확한 질문을하고 싶었습니다.

+0

인가를? – DorAyalon

+0

@DorAyalon 목록의 내용 (목록 항목)을 의미하는 경우 섹션의 일부 카운터에서 동적이어야합니다. 또한 목록 항목의 내용은 동적이어야합니다. 유일하게 정적 인 것은이 listview 안의 항목의 수입니다. –

답변

0

그래서 행 수가 정적 인 경우 listviews를 사용하지 않는 것이 좋습니다. 사용 단지 텍스트 뷰 (또는 각 행에 대해 원하는대로) 그리고 부모 레이아웃 weight_sum = [요소 수] 높이 = 0dip, 비중을 각 행에 대해 = 1 제공 : 콘텐츠 동적

<LinearLayout 
    android:layout_width="240dp" 
    android:layout_height="wrap_content" 
    android:layout_gravity="start" 
    android:orientation="vertical" 
    android:id="@+id/drawer_container" 
    android:weightSum="3"> 

    <TextView 
     android:layout_width="match_parent" 
     android:layout_height="0dip" 
     android:layout_weight="1"/> 

    <TextView 
     android:layout_width="match_parent" 
     android:layout_height="0dip" 
     android:layout_weight="1"/> 

    <TextView 
     android:layout_width="match_parent" 
     android:layout_height="0dip" 
     android:layout_weight="1"/> 

</LinearLayout> 
+0

미안하지만이 솔루션을 생각했지만 더 깨끗한 코드를 위해 List를 사용하여 작업을 선호합니다. –