我想使一个按钮的正方形与宽度相同。
我尝试bt.setWidth(bt.getHeight())
,但是它不起作用。
如果我对宽度(bt.setWidth(90)
)进行硬编码,则可以使用,但我不知道高度,因此可以对其进行硬编码。
这是一些代码。当我单击一个按钮时,它将打开一个对话框,并且该对话框必须包含方形按钮。
public class MyClass extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.myLayout);
}
public void doClick(View view) {
final Dialog dialog = new Dialog(view.getContext());
dialog.setContentView(R.layout.dialogLayout);
dialog.setTitle("Title");
Button bt = (Button) dialog.findViewById(R.id.myButton);
bt.setWidth(bt.getHeight());
bt.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
...
}
});
dialog.show();
}
}
我该怎么办?
最佳答案
直接的答案是直到显示对话框之前,它都没有测量其布局,并且按钮的高度将为零。您可以扩展Dialog类并覆盖onMeasure()方法,或者将全局布局侦听器附加到布局,并在onLayoutComplete()中设置按钮大小。
但是,您的方法可能是错误的。为什么不能在对话框的布局XML中执行此操作?