2011-03-13 3 views
0

내 레이아웃 모양 :TableRow를 다른 테이블에 정렬 하시겠습니까?

<TableLayout> 
    <TableRow></TableRow> 
    <TableLayout> 
     <TableRow></TableRow> 
     <TableRow></TableRow> 
     <TableRow></TableRow> 
    </TableLayout> 
</TableLayout> 

나는 TableLayout 내에 TableLayout 있습니다. 처음로드 될 때, 내부 TableLayout 가시성은 Gone으로 설정됩니다. 그래서 그것은 단지 하나의 TableRow입니다. 사용자가 단일 TableRow를 클릭하면 내부 TableLayout의 가시성이 표시로 변경됩니다.

문제는 첫 번째 TableRow의 열이 다른 TableRow와 정렬되지 않는다는 것입니다. 어떻게하면 모든 사람들이 일렬로 늘어날 수 있을까요?

다른 TableLayout을 내부에 사용하므로 모든 행과 스페이서에서 수행하지 않고 단일 TableLayout에서 setVisibility를 간단하게 수행 할 수 있습니다. 어쩌면 더 좋은 방법이 있을까요?

답변

0

일반적으로 권장되는 것 이상으로 <TableLayout />을 사용하려고 시도하는 것 같습니다. 표 형식의 데이터 (예 : 스프레드 시트)를 배치하지 않는 경우 <RelativeLayout />에 대한 레이아웃을 다시 생각해 보는 것이 좋습니다. RelativeLayouts는 레이아웃의 뷰 수를 줄이면 성능이 향상됩니다. RelativeLayout을 사용하여 서로의 관계에서 모든 뷰를 정의하면 레이아웃을 다른 크기의 스크린으로 확장하는 데 도움이됩니다.

+0

아마도 각 열에 대해 LinearLayout이 작동 할 것입니다. LinearLayout과 layout_weight 매개 변수를 사용하여 서로 똑같이 크기를 조정할 수도 있습니다. http://stackoverflow.com/questions/3609822/best-practices-for-targetting-a-wide-range-of-devices-and -screen-sizes/3610381 # 3610381 –

관련 문제