如何确保Android按钮处于不同布局时具有相同的高度

时间:2013-10-13 15:32:58

标签: android android-layout view height relativelayout

我有一个包含两个Button和一个TextView的视图。它们使用RelativeLayout进行分层,如下所示:

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

这里的关键是TextView和Button 1具有相同的高度,由按钮1上的layout_alignToplayout_alignBottom强制执行

按钮2的宽度与TextView相同(使用layout_alignLeftlayout_alignRight)。

问题在于我还希望它与Button 1具有相同的高度:

layout_height="@id/button_1"

我可以通过使用布局完全实现这一目标吗?

如果没有,我可以在Activity中部署一些代码来使用视图强制显示帖子布局但是在显示之前?

我真的想避免创建一个特殊的View来实现这一点。

在iOS版本中我可以具体说明各种控件具有相同的高度或宽度,但我无法在Android中看到这样做的方法。

1 个答案:

答案 0 :(得分: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);
    }
});