2

我要做的只是在右上角添加一个 imageButton 视图作为自定义视图的子视图。我的自定义视图扩展了 Webview。我将 imageButton 添加到我的自定义视图中没有问题,我只是无法将它移动到右上角。我需要以编程方式执行此操作,而不是在 xml 中。我永远不会想到这么简单的事情会需要我在这里发帖,但我真的想不通。

这是我目前用来将 imageButton 添加到自定义视图的方法,但它位于左上角:

    public class customView extends WebView {

      private void imageButtonInit() {
         ImageButton closeImageButton = new ImageButton(getContext());
         Drawable image = getResources().getDrawable(com.package.image);
         closeImageButton.setBackgroundDrawable(image);
         closeImageButton.setLayoutParams(new RelativeLayout.LayoutParams(25, 25));
         closeImageButton.bringToFront();
         customView.this.addView(closeImageButton);
      }
    }

我为将其移动到右上角所做的尝试:

    RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams(25, 25);
    lp.addRule(RelativeLayout.ALIGN_PARENT_RIGHT, -1);
    closeImageButton.setLayoutParams(lp);
    customView.this.addView(closeImageButton);

也:

    FrameLayout.LayoutParams lp = new FrameLayout.LayoutParams(25, 25, Gravity.RIGHT|Gravity.TOP);
    closeImageButton.setLayoutParams(lp);
    customView.this.addView(closeImageButton);

所有这些都导致 imageButton 被放置在左上角。这是我在这个网站上的第一篇文章,所以我希望问题的格式正确。请不要使用 xml 解决方案。谢谢大家。

4

1 回答 1

1

我认为您在其他两种方法中所做的实际上是将您的CustomView设置为具有这些布局参数。您应该尝试使用此方法设置孩子的布局参数;

    customView.this.addView(child, params);

其中 child 是您的图像按钮,params 是布局参数。

于 2012-11-22T00:38:53.790 回答