2010-08-03 3 views
0

TableLayout을 사용하여 응용 프로그램에서 기본 데이터 시트를 만들려고합니다. 첫 번째 행은 각 열의 제목을 포함합니다. 그 이후의 모든 행은 데이터입니다. 첫 번째 제목 행을 표시하면서 데이터를 스크롤 할 수있게하고 싶습니다. 즉 첫 번째 행은 나머지와 스크롤하지 않습니다.Scrollable TableLayout & Column Headers

것은 나는 다음 (실패) 같은 것을 시도 :

<TableLayout> 
    <TableRow> 
    <!-- The headers --> 
    <TextView android:text="Header #1"/> 
    <TextView android:text="Header #2"/> 
    <TextView android:text="Header #3"/> 
    </TableRow> 

    <ScrollView> 
    <!--The rest of the data --> 
    <TableRow> 
    <TableRow> 
    ... 
    </ScrollView> 
</TableLayout> 

이 충돌하는 프로그램을 발생합니다. 다른 제안?

답변

1

TableLayout에 직접 자손으로 TableRow을 가질 수 있기 때문에 충돌이 발생합니다.

아마도 사용하고자하는 것은 위에 ListView이고 '머리글'입니다.

예 (완료되지 않음) :

<LinearLayout 
    android:orientation="horizontal" 
    android:layout_width="fill_parent" 
> 
    <TextView 
     android:id="@+id/header1" 
     android:layout_weight="1" 
    /> 
    <TextView 
     android:id="@+id/header2" 
     android:layout_weight="1" 
    /> 
    <TextView 
     android:id="@+id/header3" 
     android:layout_weight="1" 
    /> 
</LinearLayout> 
<ListView 
    android:layout_width="fill_parent" 
... 
/> 

열쇠는 당신에게 동일한 크기의 조회 수를 줄 것이다 layout_weight="1"android:layout_width="fill_parent"입니다. 그런 다음 Adapter을 만들고 Adapter에서 제공하는 사용자 정의 레이아웃에서 하위보기에 대해 동일한 작업을 수행해야합니다. 패딩/마진이 약간 씩 수평 적으로 줄을서야 할 수도 있습니다.

+0

나는 이와 비슷한 것을 시도했다. 아침에 또 다른 기회를 줄 것이고 그것이 어떻게 나왔는지 알려줄 것입니다. – dfetter88

+0

좋아, 내가 뭔가를 해결할 수있을 것 같습니다. 또 하나의 질문 : 'layout_weight'를 조작하여 열 중 하나가 다른 열보다 약간 넓도록 조작하는 방법이 있습니까? (아마도 다른 칼럼보다 1.25 배 더 넓을 것이다). – dfetter88

+0

layout_weight를 낮은 값 (예 : .75)으로 설정하면 트릭이 발생했습니다. 해결 된 것으로 표시합니다. – dfetter88

1

tablerow를 직접적인 자손으로 가질 필요가 없다. scrollview는 하나의 자식 만 허용하기 때문에 충돌이 발생한다. 다른 tablelayout을 scrollview에 넣고 그 안에 행을 넣으십시오.

0

RelativeLayout에서 ScrollViewTableLayout을 모두 맨 위에 정렬하고 동일한 첫 번째 행으로 TableLayouts을 채우면 트릭을 만들 수 있습니다.

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout 
     xmlns:android="http://schemas.android.com/apk/res/android" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     > 
    <ScrollView 
      android:id="@+id/tabscrvie" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      > 
      <TableLayout 
       android:id="@+id/gridview" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       > 

     </TableLayout> 
    </ScrollView> 
    <TableLayout 
      android:id="@+id/headergridview" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_alignTop="@id/tabscrvie" 
      > 
    </TableLayout> 
</RelativeLayout>