1

我有一个自定义视图,它将被打包并添加到另一个项目中。在视图中,我想提供一个按钮选项。

这是我在 CustomView 类中的内容。

final CustomView currentView = (CustomView) findViewById(this.getId());

RelativeLayout.LayoutParams params = (new   RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT,RelativeLayout.LayoutParams.WRAP_CONTENT ));

params.addRule(RelativeLayout.ALIGN_PARENT_RIGHT);
closeButton.setLayoutParams(params);

currentView.addView(closeButton);

这都包含在一个 RelativeLayout 标记以及应用程序的其他对象中

一切都会编译,但是在 CustomView 中,按钮是左对齐而不是右对齐。有什么想法吗???

4

2 回答 2

0

我猜问题是你的CustomView。它可能不会占用窗口的整个宽度,并且宽度足以填充其子项(在您的情况下,它是关闭按钮)。确保您的 CustomView 具有fill_parent水平布局。

由于您的 CustomView 扩展了 WebView,而 WebView 又扩展了 AbsoluteLayout,因此您不能指望它处理 RelativeLayout 的参数。相反,最好将 customview 和关闭按钮放在 RelativeLayout 中并正确定位它们。

于 2012-09-18T20:47:19.047 回答
0

将您添加closeButton到您时,您currentView还需要提供 LayoutParams 作为参数以使它们生效。

基本上,切换

currentView.addView(closeButton);

currentView.addView(closeButton, params);

由于按钮的宽度设置为 wrap_content,您也可以尝试将其 layout_gravity 设置为右。

params.gravity = Gravity.RIGHT;
于 2012-09-18T20:54:55.523 回答