2011-11-28 4 views
2

지금까지 가로 스크롤보기 내에서 동적으로 테이블을 만드는 코드가 있습니다. 각 항목을 동일한 y 위치에 표시하고 한 번에 하나씩 만 볼 수있게하고 싶습니다. 지금은 각 열이 설정되지만 시각은 계단과 같습니다. 다음 행은 약 50px 위로 이동합니다. 각 열이 전체 화면 너비를 차지하게하는 방법이 있습니까? 또한 콘텐츠가 표시되는 행을 설정할 수 있습니까?테이블 레이아웃에서 행을 설정하는 방법은 무엇입니까?

TableLayout tl = (TableLayout)findViewById(R.id.contentTable); 
    for(int i=0;i<itemIndexes.size();i++) 
    { 
     TableRow tr = new TableRow(this); 
     TableLayout.LayoutParams lp = new TableLayout.LayoutParams(TableLayout.LayoutParams.FILL_PARENT,TableLayout.LayoutParams.WRAP_CONTENT); 
     tr.setLayoutParams(lp); 
      if(globals.myHitetItems.get(itemIndexes.get(i)).image!=-1) 
      { 
       ImageView iv = new ImageView(this); 
        iv.setImageResource(globals.myHitetItems.get(itemIndexes.get(i)).image); 
        iv.setLayoutParams(new TableRow.LayoutParams(i)); 
       tr.addView(iv); 
      } 
      else 
      { 
       ImageView iv = new ImageView(this); 
       iv.setImageResource(R.drawable.noimage); 
       iv.setLayoutParams(new TableRow.LayoutParams(i)); 
       tr.addView(iv); 
      } 
      TextView tv = new TextView(this); 
       tv.setText(globals.myHitetItems.get(itemIndexes.get(i)).name); 
       tv.setTextSize(20); 
       tv.setPadding(3, 3, 3, 3); 
       tv.setLayoutParams(new TableRow.LayoutParams(i)); 
      tr.addView(tv); 

      tv = new TextView(this); 
       tv.setText(globals.myHitetItems.get(itemIndexes.get(i)).content); 
       tv.setTextSize(20); 
       tv.setPadding(3, 3, 3, 3); 
       tv.setLayoutParams(new TableRow.LayoutParams(i)); 
      tr.addView(tv); 
     tl.addView(tr); 
    } 

답변

2

당신은 TableLayout을 사용 있고 지금 당신은 각 셀 정중 행과 열을 통해 자신을 비교하여 테이블에 걸쳐 적절한 같은 크기를 소비 할 것처럼.

그래서, 당신은 = "1.0" 또는 그 아래에 각 항목에 무게를 설정하고 중량 값을 지정해야합니다.

관련 문제