2010-05-30 6 views
7

TableLayout을 사용하여 계산기 레이아웃을 작성하려고하지만 마지막 두 행이 나머지 레이아웃과 정렬되지 않습니다. 내 레이아웃 XML에 문제가 있습니까?Android TableLayout 정렬에 대한 도움이 필요합니다.

HTML (<td>colspan 또는 rowspan)으로 작성하는 것이 더 쉽습니다.이를 WebView로 변환해야합니까? 다음과 같이

코드는 다음과 같습니다 (Screenshot)

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent"> 
    <EditText 
     android:id="@+id/EditText01" 
     android:layout_height="wrap_content" 
     android:layout_width="fill_parent" /> 
    <TableLayout 
     android:layout_height="fill_parent" 
     android:layout_width="fill_parent" 
     android:stretchColumns="*"> 
     <TableRow 
      android:layout_width="fill_parent" 
      android:layout_height="fill_parent" 
      android:layout_weight="1"> 
      <Button 
       android:id="@+id/Button08" 
       android:textSize="16pt" 
       android:text="^" 
       android:layout_weight="1" 
       android:layout_height="fill_parent" 
       android:layout_width="wrap_content" /> 
      <Button 
       android:id="@+id/Button09" 
       android:text="÷" 
       android:textSize="16pt" 
       android:layout_height="fill_parent" 
       android:layout_weight="1" 
       android:layout_width="wrap_content" /> 
      <Button 
       android:id="@+id/Button10" 
       android:text="×" 
       android:textSize="16pt" 
       android:layout_height="fill_parent" 
       android:layout_weight="1" 
       android:layout_width="wrap_content" /> 
      <Button 
       android:id="@+id/Button11" 
       android:textSize="16pt" 
       android:text="-" 
       android:layout_weight="1" 
       android:layout_height="fill_parent" 
       android:layout_width="wrap_content" /> 
     </TableRow> 
     <TableRow 
      android:layout_width="fill_parent" 
      android:layout_height="fill_parent" 
      android:layout_weight="2"> 
      <LinearLayout 
       android:layout_width="wrap_content" 
       android:layout_height="fill_parent" 
       android:orientation="vertical" 
       android:layout_weight="1"> 
       <Button 
        android:id="@+id/Button01" 
        android:text="7" 
        android:textSize="16pt" 
        android:layout_weight="1" 
        android:layout_height="wrap_content" 
        android:layout_width="fill_parent" /> 
       <Button 
        android:layout_height="wrap_content" 
        android:textSize="16pt" 
        android:text="4" 
        android:id="@+id/Button05" 
        android:layout_weight="1" 
        android:layout_width="fill_parent" /> 
      </LinearLayout> 
      <LinearLayout 
       android:layout_height="fill_parent" 
       android:orientation="vertical" 
       android:layout_weight="1" 
       android:layout_width="fill_parent"> 
       <Button 
        android:id="@+id/Button02" 
        android:layout_height="wrap_content" 
        android:text="8" 
        android:textSize="16pt" 
        android:layout_weight="1" 
        android:layout_width="fill_parent" /> 
       <Button 
        android:layout_height="wrap_content" 
        android:textSize="16pt" 
        android:text="5" 
        android:id="@+id/Button06" 
        android:layout_weight="1" 
        android:layout_width="fill_parent" /> 
      </LinearLayout> 
      <LinearLayout 
       android:layout_height="fill_parent" 
       android:orientation="vertical" 
       android:layout_weight="1" 
       android:layout_width="fill_parent"> 
       <Button 
        android:id="@+id/Button03" 
        android:text="9" 
        android:textSize="16pt" 
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content" 
        android:layout_weight="1" /> 
       <Button 
        android:textSize="16pt" 
        android:text="6" 
        android:id="@+id/Button07" 
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content" 
        android:layout_weight="1" /> 
      </LinearLayout> 
      <Button 
       android:id="@+id/Button04" 
       android:text="+" 
       android:textSize="16pt" 
       android:layout_height="fill_parent" 
       android:layout_width="fill_parent" 
       android:layout_weight="1" /> 
     </TableRow> 
     <TableRow 
      android:layout_width="fill_parent" 
      android:layout_height="fill_parent" 
      android:layout_weight="2"> 
      <LinearLayout 
       android:layout_width="wrap_content" 
       android:layout_height="fill_parent" 
       android:orientation="vertical" 
       android:layout_weight="2"> 
       <LinearLayout 
        android:layout_weight="1" 
        android:orientation="horizontal" 
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content"> 
        <Button 
         android:id="@+id/Button02" 
         android:textSize="16pt" 
         android:layout_weight="1" 
         android:layout_width="fill_parent" 
         android:layout_height="fill_parent" 
         android:text="1" /> 
        <Button 
         android:textSize="16pt" 
         android:id="@+id/Button06" 
         android:layout_weight="1" 
         android:layout_width="fill_parent" 
         android:layout_height="fill_parent" 
         android:text="2" /> 
       </LinearLayout> 
       <Button 
        android:id="@+id/Button01" 
        android:layout_height="wrap_content" 
        android:textSize="16pt" 
        android:layout_weight="1" 
        android:layout_width="fill_parent" 
        android:text="0" /> 
      </LinearLayout> 
      <LinearLayout 
       android:layout_width="wrap_content" 
       android:layout_height="fill_parent" 
       android:orientation="vertical" 
       android:layout_weight="1"> 
       <Button 
        android:id="@+id/Button03" 
        android:textSize="16pt" 
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content" 
        android:layout_weight="1" 
        android:text="3" /> 
       <Button 
        android:textSize="16pt" 
        android:id="@+id/Button07" 
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content" 
        android:layout_weight="1" 
        android:text="." /> 
      </LinearLayout> 
      <Button 
       android:id="@+id/Button04" 
       android:textSize="16pt" 
       android:layout_height="fill_parent" 
       android:layout_width="fill_parent" 
       android:layout_weight="1" 
       android:text="=" /> 
     </TableRow> 
    </TableLayout> 
</LinearLayout> 
+0

분명히 '='버튼이 의도 한 것보다 많은 공간을 차지하고 있습니다. '='버튼의 layout_weight 매개 변수를 조정 해보십시오. – primpap

+0

"하지만 마지막 두 행이 나머지 레이아웃과 정렬되지 않습니다."- 여기서 화면을 볼 수 없습니다. 보고있는 스크린 샷을 게시 할 수 있습니까? 달성하고자하는 것을 보여주는 실물 모형이 있다면 훨씬 더 좋습니다. – CommonsWare

+0

primalpop, 나는 그 무게를 0으로 바꿨고, 이제 나는 http://img683.imageshack.us/img683/2043/calculatorandroidlayout.png를 가지고있다. 중첩 된 LinearLayouts를 사용하지 않고 여러 행/열을 테이블 셀로 덮을 수있는 방법이 있습니까? CommonsWare, http://img185.imageshack.us/img185/2043/calculatorandroidlayout.png은 원래의 것이고 http://img683.imageshack.us/img683/2043/calculatorandroidlayout.png는 현재 버전입니다. –

답변

5

귀하의 최종 TableRow가 3 개의 셀 (즉, 직접적인 아이). 나머지는 4 개가 있습니다. 따라서 어떤 세포가 네 번째 세포를 흡수하고 있음을 나타 내기 위해 어딘가에 android:layout_span 속성을 넣지 않으면 정렬하지 않을 것입니다.

+2

0, 1 및 2를 포함하는 "셀"을 두 셀에 걸쳐 설정하고 등호를 무게 1에 다시 넣으면 매력처럼 작동합니다! 감사! –

관련 문제