什么时候以编程方式调整按钮编程的大小?

时间:2014-11-20 12:53:06

标签: java android android-studio

我在tablelayout中创建了一些按钮。我以编程方式创建按钮。

例如,以下代码位于" onresume"方法......

TableLayout.LayoutParams tableParams = new TableLayout.LayoutParams(TableLayout.LayoutParams.WRAP_CONTENT, TableLayout.LayoutParams.WRAP_CONTENT);
TableRow.LayoutParams rowParams = new TableRow.LayoutParams(0,android.widget.TableRow.LayoutParams.MATCH_PARENT,3f);
TableLayout tableLayout = (TableLayout) findViewById(R.id.sometablelayoutivealreadydefinedinxml);

TableRow tableRow = new TableRow(this);
tableRow.setLayoutParams(tableParams);

Button btnOne = new Button(this);
btnOne.setId(100);
btnOne.setLayoutParams(rowParams);
btnTwo.setId(200);
btnTwo.setLayoutParams(rowParams);
tableRow.addView(btnOne);
tableRow.addView(btnTwo);
tableLayout.addView(tableRow);

我想将按钮的高度设置为SAME作为宽度。宽度由屏幕大小决定。我理解的问题是,在按钮实际绘制到屏幕之前,它们不存在,因此返回的任何宽度都将为零。所以我尝试了以下代码。

Button yourBtn = (Button)findViewById(100);
int btnSize;
btnSize = yourBtn.getWidth();
yourBtn.setLayoutParams(new TableRow.LayoutParams(btnSize, btnSize));

现在的问题是,如果我在创建按钮后立即运行此代码,则按钮的宽度将返回为0,因为按钮尚未被绘制。但是,如果我将代码分配给测试按钮,那么它会根据我的需要调整按钮的大小。但是,我不希望用户在加载屏幕后按下按钮以正确调整按钮的大小。

所以,问题是什么时候调用它来适当地调用它来在创建活动时正确地调整按钮大小但是在绘制按钮之后如何执行此操作?

0 个答案:

没有答案
相关问题