1

我想制作一个宽度与高度相同的按钮正方形。
我尝试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();
    }   
}

我怎么能做到?

4

1 回答 1

2

直接的答案是,在显示对话框之前,它还没有测量它的布局,按钮高度将为零。您可以扩展 Dialog 类并覆盖 onMeasure() 方法或将全局布局侦听器附加到布局并在 onLayoutComplete() 中设置按钮大小。

但是,您的方法可能是错误的。为什么不能在对话框的布局 XML 中执行此操作?

于 2012-09-23T08:56:01.780 回答