我有一个包含两个Button
和一个TextView
的视图。它们使用RelativeLayout
进行分层,如下所示:
+-----------+
__TextView___ | Button 1 |
+-----------+
+-----------+
| Button 2 |
+-----------+
这里的关键是TextView和Button 1具有相同的高度,由按钮1上的layout_alignTop
和layout_alignBottom
强制执行
按钮2的宽度与TextView相同(使用layout_alignLeft
和layout_alignRight
)。
问题在于我还希望它与Button 1具有相同的高度:
layout_height="@id/button_1"
我可以通过使用布局完全实现这一目标吗?
如果没有,我可以在Activity中部署一些代码来使用视图强制显示帖子布局但是在显示之前?
我真的想避免创建一个特殊的View
来实现这一点。
在iOS版本中我可以具体说明各种控件具有相同的高度或宽度,但我无法在Android中看到这样做的方法。
答案 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);
}
});