0

我的表格布局有几行,每行包含一个 textView n 一个 editText。我有一个空白行,我想用 textView 和 editText 动态填充它。我添加了一个 textView(hips) 但它没有显示为其他。见下文,在第 3 行 textView 显示为透明的。我想动态添加与上述行相同的 textView n 和 editText 。

在此处输入图像描述

 TableRow row = (TableRow) findViewById(R.id.tblHips);
     TextView txt=new TextView(getApplicationContext());
     txt.setTextAppearance(getApplicationContext(), android.R.attr.textAppearanceLarge);
     txt.setId(R.id.txtHipId);
     txt.setText("Hips");
     row.addView(txt);

我只为腰部以下的行添加了代码-

        <TextView
            android:id="@+id/TextView02"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="2"
            android:text="Waist"
            android:textAppearance="?android:attr/textAppearanceLarge" />

        <EditText
            android:id="@+id/EditText02"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:inputType="numberDecimal" />

    </TableRow>

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

    </TableRow>

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

        <RadioGroup
            android:id="@+id/rdMs"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:orientation="horizontal" >

            <RadioButton
                android:id="@+id/radio0"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:checked="true"
                android:text="Imperial" />

            <RadioButton
                android:id="@+id/radio1"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Metric" />
        </RadioGroup>

    </TableRow>
4

1 回答 1

0

看起来透明的原因TextView是文本的 alpha 未设置为 255。txt.setAlpha(255);将解决该问题。

如果您只想拥有一个隐藏字段,解决问题的最佳方法是将所有视图放在 xml 中,并使用android:visibility="gone". 然后在你的代码中你可以切换View.GONE View.VISIBLE(你想使用gone,因为它会从布局中删除视图)。

如果您真的需要在运行时添加视图,您将需要指定每个小细节,例如文本大小(并使用不同的 dpi 更改)、文本颜色/alpha 等。这很快成为支持的噩梦。在这种情况下,您应该制作一个单独的布局 .xml 文件并使用布局充气器来生成视图。

LayoutInflater inflater = this.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
TableRow row = (TableRow)inflater.inflate(R.layout.hips, container, false);
//where 'container' is the containing TableView & 'this' is an activity
于 2012-10-22T15:49:46.107 回答