2015-01-09 77 views
1

在讀取StackOverflow上的數十個線程後。 我想動態添加行到表格佈局。 問題是,只有一行是動態添加的,並且它跨越所有頁面。 這是我的代碼:android tablelaayout動態添加行後添加最後一行

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:

​​

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 welsh:我已經添加它只是爲了檢查它是否只有朝氣添加的行不工作... –

回答

1

我認爲這是給你一個問題的「視圖」。嘗試用ImageView替換它(嘗試它),我認爲它會起作用。如果你真的想要查看(不知道爲什麼),然後將最小高度和最小寬度設置爲10dp。

它發生在我身上一次,包裝內容的空白視圖橫跨整個頁面。它推動你的其餘行不在屏幕上

+0

是的,你可以用imageview做到這一點。以編程方式創建圖像視圖,並執行Setimageresourcse或setImageSrc ..不記得確切的語法。你會得到同樣的效果。嘗試消除至少潛在的「觀點」問題 – Snake

+0

我想通了,我沒有設置視圖佈局參數。我以爲我誇大了它。但我沒有 –

+0

感謝您接受答案,並很高興現在可以使用。 – Snake