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

他の2つのメソッドで行っているのは、文字通りCustomViewにそれらのレイアウトパラメータを設定することだと思います。代わりに試すべきことは、このメソッドを使用して子供のレイアウトパラメータを設定することです。

    customView.this.addView(child, params);

ここで、childは画像ボタンで、paramsはレイアウトパラメータです。

于 2012-11-22T00:38:53.790 に答える