我想在 ScrollView 中的 Tablelayout 中以编程方式设置按钮的大小。
这是我的 XML 文件
<ScrollView
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:scrollbarFadeDuration="1000"
android:scrollbarSize="12dip" >
<TableLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/tablay"
tools:context=".MainActivity"
>
<Button
android:id="@+id/start"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/open" />
<TableRow>
<ImageButton
android:layout_width="16sp"
android:layout_height="16sp"
android:contentDescription="@string/Delete"
android:src="@drawable/ic_delete" />
</TableRow>
</TableLayout>
</ScrollView>
这是我的java文件
private void setList(){
/* Create a new row to be added. */
TableRow tr;
ImageButton delbtn;
int btnsize;
tr = new TableRow(this);
tr.setLayoutParams(new LayoutParams(
LayoutParams.MATCH_PARENT,
LayoutParams.WRAP_CONTENT));
delbtn = new ImageButton(this);
//delbtn.setText("Delete");
//delbtn.setTextSize(TypedValue.COMPLEX_UNIT_SP,sys_def_char_font);
btnsize = (int)TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_SP, sys_def_char_font, getResources().getDisplayMetrics());
delbtn.setId(i);
delbtn.setImageResource(R.drawable.ic_delete);
delbtn.setLayoutParams(new LayoutParams(btnsize,btnsize));
tr.addView(delbtn);
tablay.addView(tr);
}
如果我在 xml 文件中相互添加按钮,那么一切都很好。
但我尝试以编程方式添加它。因为我想让我以编程方式添加的按钮更小,所以我使用 setLayoutParams 来设置参数。
但是,我以编程方式添加的按钮在 setLayoutParams() 之后丢失了。
拜托,谁能告诉我哪里错了?