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 に答える