我写的是下面的代码,但是没有显示按钮,因为我在bar layoutParametrs中设置了FILL_PARENT。如何在不使用XML的情况下修复它?
TableRow myLayout = new TableRow (this);
myLayout.setAlwaysDrawnWithCacheEnabled(true);
TextView text = new TextView (this);
text.setText("Test: ");
SeekBar bar = new SeekBar (this);
ToggleButton button = new ToggleButton (this);
myLayout.addView( text , new TableRow.LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT));
myLayout.addView( bar , new TableRow.LayoutParams(LayoutParams.FILL_PARENT,LayoutParams.WRAP_CONTENT));
myLayout.addView( button , new TableRow.LayoutParams(LayoutParams.FILL_PARENT,LayoutParams.WRAP_CONTENT));
如果FILL_PARENT设置为bar
如果不是
两种变体都是错误的
答案 0 :(得分:2)
当我需要用多个项填充一行时,我通常使用layout_weight和fill_parent的宽度设置。这会按行设置权重值的比例分配行的整个宽度。
由于您是在代码而不是xml中执行此操作,因此请查看带有第三个参数的LayoutParams的构造函数。这对应于layout_weight:
答案 1 :(得分:1)
尝试使用WRAP_CONTENT和这样的权重参数。
myLayout.addView( text , new TableRow.LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT,5));
myLayout.addView( bar , new TableRow.LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT,10));
myLayout.addView( button , new TableRow.LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT,85));