我的表格布局有几行,每行包含一个textView和一个editText。我有一个空白行,我想动态填充textView和editText。我添加了一个textView(臀部),但它没有显示为其他。见下文,在第3行中textView显示为trasnparent。我想动态地在上面的行中添加相同的textView和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>
答案 0 :(得分:0)
TextView
看起来透明的原因是文本的alpha未设置为255. txt.setAlpha(255);
将解决该问题。
如果您只想拥有一个隐藏字段,解决问题的最佳方法是将所有视图放在xml中,并使用android:visibility="gone"
“隐藏”隐藏的视图。然后在您的代码中,您可以在View.GONE
View.VISIBLE
之间切换(您希望使用已删除,因为它会从布局中删除视图)。
如果你真的需要在运行时添加视图,你需要指定每个小细节,如文本大小(并用不同的dpi更改它),文本颜色/ alpha等。这很快成为支持的噩梦。在这种情况下,您应该创建一个单独的布局.xml文件,并使用布局inflater生成视图。
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