您好我在XML中创建了TableLayout 现在在代码中我通过finViewById引用tablelayout。然后我创建动态新的TableRow(row2),其中包含四个子(当我点击dodaj_wiersz按钮时它会发生)。 Textv1,Editt1,Textv2,Editt2
我的问题是,我怎样才能为行设置均匀的权重,就像在XML中使用“均匀分布权重”按钮后一样。
我的代码:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.nowe_sciany);
final TableLayout tablayout=(TableLayout) findViewById(R.id.wyglad);
//reakcja na dodaj wiersz
final Button dodaj_wiersz=(Button) findViewById(R.id.addrow);
dodaj_wiersz.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
TableRow row2 = new TableRow(getApplicationContext());
textv1 = new TextView(getApplicationContext());
textv2 = new TextView(getApplicationContext());
editt1 = new EditText(getApplicationContext());
editt2 = new EditText(getApplicationContext());
textv1.setText("width: ");
textv2.setText("height: ");
row2.addView(textv1);
row2.addView(editt1);
row2.addView(textv2);
row2.addView(editt2);
tablayout.addView(row2, new TableLayout.LayoutParams());
}
});
}
@Override
public void onClick(View v) {
}
}
答案 0 :(得分:1)
如果您在TableRow中修复了4个视图(Textv1,Editt1,Textv2,Editt2),那么您可以像这样定义TableLayout:
TableRow.layoutParams trLayout =
new LayoutParams(0, LayoutParams.MATCH_PARENT, 0.25f);
tablayout.addView(row2, trLayout);
要创建一个线性布局,其中每个孩子在屏幕上使用相同的空间量,请将每个视图的android:layout_height设置为“0dp”(对于垂直布局)或者将每个视图的android:layout_width设置为“ 0dp“(用于水平布局)。
LinearLayout是TableRowLayout #doc
的父级答案 1 :(得分:0)
您可以在layoutparams上设置权重,如下所示:
TableRow.LayoutParams params = new TableRow.LayoutParams(
LayoutParams.MATCH_PARENT,
LayoutParams.MATCH_PARENT, 1.0f);
参数是宽度,高度和重量。
然后你可以设置参数的参数:
textv1.setLayoutParams(params);