2011-12-16 4 views
2

나는 tablelayout을 포함하는 scrollview로 구성된 간단한 안드로이드 레이아웃을 가지고있다. 이 테이블은 올바르게 표시되지만 기본적으로 스크롤 막대 위에 정적 헤더를 추가하여 테이블의 열에 대한 레이블이 화면 상단에 항상 있도록합니다. 그러나 <ScrollView> 위의 내용을 내 레이아웃 파일에 <LinearLayout> 추가하면 모두 사라집니다.scrollview 위의 선형 레이아웃

누구나 내 xml 파일을 잘못 처리 한 것을 발견 할 수 있습니까? 그대로

<?xml version="1.0" encoding="utf-8"?> 

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
     android:id="@+id/linearLayout1" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:gravity="top" > 

     <LinearLayout 
      android:id="@+id/header" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      /> 

     <ScrollView 
      android:id="@+id/scrollView1" 
      android:layout_width="fill_parent" 
      android:layout_height="fill_parent" > 

      <TableLayout 
       android:id="@+id/mainTable" 
       android:layout_width="fill_parent" 
       android:layout_height="fill_parent" /> 
     </ScrollView> 

    </LinearLayout> 

, 나는있는 ScrollView 또는 테이블 레이아웃을 볼 수 없습니다,하지만 난 header있는 LinearLayout을 제거하면, 그것은 잘 표시됩니다.

+0

왜 [LinearLayouts] (http://developer.android.com/resources/tutorials/views/hello-linearlayout.html)에 대한 방향을 설정하지 않았습니까? – Adinia

+0

그게 정확히 내가해야 할 일 이었기 때문에 ... 대답을 만들어서 받아 들일 수있다. –

답변

3

LinearLayoutsandroid:orientation 매개 변수 집합을 가질 필요가 있습니다.

+0

그래, 그게 무슨 문제가 있었는지, 나는 주 레이아웃이 '수직'방향으로 설정하고, 내부 레이아웃은 '수평'방향으로 설정했다. 이제는 내부 레이아웃이 필요한 것보다 더 많은 수직 공간을 차지하는 이유를 알아야합니다. –

+0

아마도 메인과 스크롤이 모두 'fill_parent'로 설정 되었기 때문에 ...! – Adinia

+0

음, 충분한 공간을 차지하지 않는 scrollview ('fill_parent'로 설정). 어떤 이유로 내부 'LinearLayout'의 일부 서브 뷰에 텍스트를 설정하면 너무 커지게됩니다 –

1

부모 LinearLayout의 방향을 세로로 설정해야합니다! 기본적으로 가로로 설정되어있어 ScrollView가 표시되지 않습니다.

당신이 시도 할 수 있습니다 :이 도움이

<LinearLayout 
     android:id="@+id/header" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_weight="0" 
     /> 

    <ScrollView 
     android:id="@+id/scrollView1" 
     android:layout_width="fill_parent" 
     android:layout_height="0dp" android:layout_weight="1"> 

     <TableLayout 
      android:id="@+id/mainTable" 
      android:layout_width="fill_parent" 
      android:layout_height="fill_parent" /> 
    </ScrollView> 

희망!

+0

불행히도, 그 속임수를하지 않았다. –

+0

업데이트 된 답변을 확인하십시오! –

0

scrollview의 layout_height는 fill_parent로 설정됩니다. wrap_content를 사용하십시오.

+0

둘 다 시도했는데 둘 다 작동하지 않았습니다 –

+0

또한 TableLayout의 높이에 wrap_content를 사용하십시오. 나는 그것이 내 대답에 주어 졌다고 생각하지만 분명히 그렇지 않다. – josephus

+0

아직 운이 없군 ... –

관련 문제