2013-04-27 2 views
1

나는 뻗어 테이블을 가지고있어 내 확인란이 또한 테이블 행 중앙에 나타납니다 싶습니다. 텍스트 뷰에 나는라고했습니다센터 체크 박스는 프로그램 적으로?

  myTextView.setGravity(Gravity.CENTER); 

그리고 나는 또한 테이블 매개 변수로 설정 시도했다 :

이 내 XML이 테이블 설정 :

<TableLayout 
    android:id="@+id/info" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:layout_alignParentLeft="true" 
    android:layout_below="@+id/linearLayout1" 
    android:layout_margin="6dp" 
    android:stretchColumns="0,1,2,3,4" > 

    <TableRow 
     android:id="@+id/tableRow1" 
     android:layout_width="wrap_content" 
     android:layout_height="fill_parent" 
     android:background="@drawable/roundedheader" > 

과 이것은 각 행을 생성 할 때 호출하는 코드입니다.

  //set table margin 
      TableLayout.LayoutParams tableRowParams= new TableLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT); 

      int leftMargin=0,rightMargin=0,bottomMargin=0; 
      int topMargin=5; 

      tableRowParams.setMargins(leftMargin, topMargin, rightMargin, bottomMargin); 
      tableRowParams.gravity = Gravity.CENTER; 
      row.setLayoutParams(tableRowParams); 

      // add the TableRow to the TableLayout 
      table.addView(row); 

그러나 동일한 명령은 t 그는 체크 박스. 어떤 사람들이 그 차이점이 무엇인지, 그리고 내가해야 할 일이 무엇인지 알고 있습니까? 체크 박스는 테이블 행에있는 다른 레이아웃 내에 있지 않습니다.

TIA

난 당신이 이전에 이러한 링크를 확인 TableLayout을 작업을 시작하는 것이 좋습니다
+0

xml은 어떻게 보이나요? –

+0

당신은 http://stackoverflow.com/questions/5515174/android-how-to-center-view-within-column-of-tablelayout?rq=1 – ashishdhiman2007

+0

나는했습니다이 (할 수있다) 볼 수 있습니다 그 스레드에서 솔루션을 시도 - 아니 기쁨! Prakash 질문을 업데이트했습니다. –

답변

1

:

http://developer.android.com/reference/android/widget/TableLayout.html

http://developer.android.com/reference/android/widget/TableRow.html

http://developer.android.com/reference/android/widget/TableRow.LayoutParams.html

또한 어떻게 작동하는 예제의 무리가를 Andro의 API 데모에서 TableLayout 사용 id SDK.

레이아웃이 android:stretchColumns="0,1,2,3,4" 인 경우 적어도 5 개의 열을 갖지만 코드 스 니펫에서는 row에 몇 개의보기가 추가되는지 추정 할 수 없습니다. 뷰 요소가 적고 열이 부족하여 빈 공간을 사용하려면 TableRow.LayoutParamsandroid:layout_span을 지정해야합니다.

TableRow.LayoutParams rowParams = new TableRow.LayoutParams(); 
rowParams.gravity = Gravity.CENTER; 
rowParams.span = 5; 
checkBox.setLayoutParams(rowParams); 

은 또한 당신이 대신 코드에서 그들을 만드는 XML 레이아웃을 사용하는 것이 좋습니다 : 그래서 당신은 행에 하나의 CheckBox이 있고 다음에 무엇을해야합니다 5 열 가정. xml 레이아웃을 고수 할 수 없다면 적어도 xml 편집기를 사용하여 XML 레이아웃을 작성하십시오. 따라서 코드에서 생성하기위한 좋은 출발점이됩니다.