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だと思います。おそらくウィンドウの幅全体を占めるわけではなく、子(この場合は閉じるボタン)を埋めるのに十分な幅です。fill_parentCustomViewが水平レイアウトになっていることを確認してください。

CustomViewはWebViewを拡張し、WebViewはAbsoluteLayoutを拡張するため、RelativeLayoutのパラメーターを処理することは期待できません。代わりに、カスタムビューと閉じるボタンをRelativeLayout内に配置し、適切に配置することをお勧めします。

于 2012-09-18T20:47:19.047 に答える
0

closeButtonyourを your に追加するときcurrentViewは、LayoutParams を引数として指定して有効にする必要があります。

基本的にはスイッチ

currentView.addView(closeButton);

currentView.addView(closeButton, params);

ボタンの幅が wrap_content に設定されているため、layout_gravity を右に設定することもできます。

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