0

Button2 つの とを含むビューがありTextViewます。それらは、RelativeLayout以下に示すように を使用してレイヤー化されます。

                  +-----------+
__TextView___     | Button 1  |
                  +-----------+
+-----------+
| Button 2  |
+-----------+

ここで重要なのは、TextView と Button 1 の高さが同じで、Button 1 によって適用されることlayout_alignTopですlayout_alignBottom

ボタン 2 は、TextView と同じ幅になるように制限されています (layout_alignLeftとを使用layout_alignRight)。

問題は、次のようなものを使用してボタン 1 と同じ高さにしたいことです。

layout_height="@id/button_1"

Layouts を使用してこれを完全に達成できますか?

そうでない場合、ビューを使用してこの投稿レイアウトを表示する前にアクティビティに展開できるコードはありますか?

Viewこれを達成するためにスペシャルを作成する必要はありません。

iOS ランドでは、さまざまなコントロールの高さまたは幅が同じであることを特定できますが、Android でこれを行う方法がわかりません。

4

1 に答える 1

0

これをアクティビティのonCreateメソッドに入れてみてください

Button button1 = (Button) findViewById(R.id.button_1);
Button button2 = (Button) findViewById(R.id.button_2);
RelativeLayout relativeLayout = (RelativeLayout) findViewById(R.id.relativeLayout);
relativeLayout.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {

    @Override
    public void onGlobalLayout() {
        relativeLayout.getViewTreeObserver().removeGlobalOnLayoutListener(this);

        RelativeLayout.LayoutParams btParams = (RelativeLayout.LayoutParams) button2.getLayoutParams();
        int height = button1.getHeight();
        btParams.height = height;
        button2.setLayoutParams(btParams);
    }
});
于 2013-10-13T16:26:46.733 に答える