在分隔文件中动态地向表布局添加行

时间:2013-02-12 11:50:26

标签: java android layout tablerow

我有这样的事情:

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >

    <TableLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content">

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

            <TextView
                android:id="@+id/chooseBirthDateText"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:layout_marginTop="25dp"
                style="@style/mediumText"
                android:gravity="center_horizontal"
                android:text="@string/choose_birth_date" />

        </TableRow>
    </TableLayout>
</ScrollView>

我想添加更多行,但仅在一段时间后(比方说10秒)。我想首先使这些行不可见,然后让它们出现。但是就这样我的scrollView不能正常工作(即使下面没有任何内容,我也可以向下滚动 - 因为行是不可见的)

所以我想在第二个文件中创建要添加的行,在中间加载它们并在tableRow1之后添加它们,以便它们必须出现。不幸的是我不知道该怎么做(我说的是连接2个文件,而不是在java中创建第二个文件):/

2 个答案:

答案 0 :(得分:1)

隐藏视图有两种模式:

  • INVISIBLE:此视图不可见,但仍会占用空间以进行布局。
  • GONE:此视图不可见,并且不需要任何空间进行布局。

http://developer.android.com/reference/android/view/View.html#setVisibility(int)

我认为GONE会对你有帮助。

答案 1 :(得分:0)

你应该尝试这样。我知道这有用吗?

    for(int i = 0; i < _attributeList.size();i++){


        TableRow newRow = new TableRow(getApplicationContext());
        newRow.setLayoutParams(new TableRow.LayoutParams(TableRow.LayoutParams.MATCH_PARENT, TableRow.LayoutParams.WRAP_CONTENT));

        newCheckBox = new CheckBox(getApplicationContext());

                TextView feeTypeText = new TextView(getApplicationContext());
                feeTypeText.setText(jsonObj.getString("feeType"));
                feeTypeText.setTextColor(Color.BLACK);
                feeTypeText.setTextSize(16f);
                feeTypeText.setTypeface(tf);

                TextView dueAmountText = new TextView(getApplicationContext());
                dueAmountText.setText(jsonObj.getString("dueAmount"));
                dueAmountText.setTextColor(Color.BLACK);
                dueAmountText.setTextSize(16f);
                dueAmountText.setTypeface(tf);

                TextView dueDateText = new TextView(getApplicationContext());
                dueDateText.setText(jsonObj.getString("dueDate"));
                dueDateText.setTextColor(Color.BLACK);
                dueDateText.setTextSize(16f);
                dueDateText.setTypeface(tf);

                newRow.addView(newCheckBox,(new LayoutParams(0,LayoutParams.WRAP_CONTENT,0.8f)));
                newRow.addView(feeTypeText,(new LayoutParams(0,LayoutParams.WRAP_CONTENT,0.8f)));
                newRow.addView(dueAmountText,(new LayoutParams(0,LayoutParams.WRAP_CONTENT,1.0f)));
                newRow.addView(dueDateText,(new LayoutParams(0,LayoutParams.WRAP_CONTENT,1.0f)));

attributeTable.addView(NEWROW); }