2015-01-09 8 views
1

만 동적으로 추가됩니다. 테이블 레이아웃에 동적으로 행을 추가하려고합니다. 문제는 하나의 행이 동적으로 추가되고 모든 페이지에 스패닝된다는 것입니다. 이 내 코드입니다 :android TableLayout 행을 추가하면 StackOverflow에서 수십 개의 스레드를 읽은 후 마지막 행인

package com.example.trashproject; 

import android.os.Bundle; 
import android.support.v4.app.FragmentActivity; 
import android.view.View; 
import android.widget.TableLayout; 
import android.widget.TableRow; 
import android.widget.TableRow.LayoutParams; 

public class MainActivity extends FragmentActivity{ 


    private static final int ROWS =2; 
    private static final int COLS = 10; 
    private static final String TAG = null; 
    private TableLayout mTable; 
    private View[][] mCircles; 
    private boolean[][] mData; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     makeTable(); 

    } 

    private void makeTable() { 
     mTable = (TableLayout) findViewById(R.id.table); 

     TableRow.LayoutParams rowParams = new TableRow.LayoutParams(); 
     rowParams.width = LayoutParams.WRAP_CONTENT; 
     rowParams.height = LayoutParams.WRAP_CONTENT; 
     mCircles = new View[ROWS][COLS]; 
     TableRow row; 
     for (int i = 0; i < ROWS; i++) { 
      row = new TableRow(this); 
      row.setLayoutParams(rowParams); 
      for (int j = 0; j < COLS; j++) { 
       mCircles[i][j] = new View(this); 
       mCircles[i][j].setBackgroundResource(R.drawable.small_circle); 
       row.addView(mCircles[i][j]); 
      } 
      mTable.addView(row); 
     } 
    } 

activity_main.xml :

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:id="@+id/LinearLayout1" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical" > 

    <TableLayout 
     android:id="@+id/table" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:orientation="vertical" > 
    <TableRow > 
     <TextView 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="TEXT"/> 
    </TableRow> 
    <TableRow > 
     <TextView 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="TEXT"/> 
    </TableRow> 
    </TableLayout> 

</LinearLayout> 

calendar_month_grid.xml :

<?xml version="1.0" encoding="utf-8"?> 
<View xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/view1" 
    android:layout_width="wrap_content" 
    android:layout_height="1dp" 
    /> 

small_circle.xml : 당신의 도움이 감사

<?xml version="1.0" encoding="utf-8"?> 
<shape xmlns:android="http://schemas.android.com/apk/res/android" 
    android:shape="oval" > 
    <size android:width="15dp" 
     android:height="1dp"/> 
    <solid android:color="@android:color/holo_green_light"/> 

</shape> 

. ..

+0

이것이 도움이되는지 확신 할 수 없지만 xml 파일에서 테이블에 대한 테이블 행 정의를 제거합니다. –

+0

@Kristy 웨일스 어 : dynmic 추가 행이 작동하지 않는지 확인하기 위해 추가했습니다 ... –

답변

1

나는 그것이 당신에게 문제를주고있는 "보기"라고 생각합니다. 그것을 ImageView로 바꾸어보십시오 (시도해보십시오) 그리고 나는 그것이 효과가 있다고 생각합니다. 보기를 원한다면 (이유를 모르겠다) 분 높이와 분 너비를 10dp와 같이 설정하십시오.

랩 컨텐트가있는 빈보기가 전체 페이지에 걸쳐 나에게 그런 일이 일어났습니다. 화면 밖으로 나머지 행을 밀어 넣고 있습니다.

+0

예, 이미지 뷰로 할 수 있습니다. 프로그래밍 방식으로 이미지보기를 만들고 Setimageresourcse 또는 setImageSrc를 수행하십시오. 정확한 구문을 기억할 수 없습니다. 동일한 효과를 얻을 수 있습니다. 잠재적 인 "보기"문제를 제거하기 위해 시도하십시오 – Snake

+0

나는 그것을 알아 냈고 Views 레이아웃 매개 변수는 설정하지 않았습니다. 나는 그것을 부풀린다고 생각했다. 하지만 난하지 않았다 –

+0

대답을 받아 주셔서 감사 드리며 지금은 다행입니다. – Snake