RelativeLayout を拡張するクラスがあります。この中に、特定の高さと幅を持つ別の相対的なレイアウトがあり、その中に webview とボタンがあります。このボタンは、2 番目の相対レイアウトの右上隅に配置されています。スイッチケースで渡される列挙型に基づいて、2番目の相対レイアウトの上、左、右、下、中央にWebビューの位置を設定しています。私が直面している問題は、webview を一番上に設定すると、ボタンが重なってボタンが表示されないことです。これは私のコードです:
enum position {
Top, Bottom, Left, Right, Center
};
public class Sample extends RelativeLayout {
RelativeLayout layout = new RelativeLayout(context);
RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(
width, height);
addView(layout, params);
closeButton = new Button(context);
closeButton.setId(1);
closeButton.setText("X");
RelativeLayout.LayoutParams child1Params = new RelativeLayout.LayoutParams(
RelativeLayout.LayoutParams.WRAP_CONTENT,
RelativeLayout.LayoutParams.WRAP_CONTENT);
child1Params.addRule(RelativeLayout.ALIGN_PARENT_TOP);
child1Params.addRule(RelativeLayout.ALIGN_PARENT_RIGHT);
layout.addView(closeButton, child1Params);
closeButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
closePressed();
}
});
RelativeLayout.LayoutParams child2Params = new RelativeLayout.LayoutParams(
RelativeLayout.LayoutParams.WRAP_CONTENT,
RelativeLayout.LayoutParams.WRAP_CONTENT);
switch (position) {
case Top:
webView = new WebView(context);
child2Params.addRule(RelativeLayout.ALIGN_PARENT_TOP);
layout.addView(webView, child2Params);
break;
case Bottom:
webView = new WebView(context);
child2Params.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM);
layout.addView(webView, child2Params);
break;
case Left:
webView = new WebView(context);
child2Params.addRule(RelativeLayout.ALIGN_PARENT_LEFT);
layout.addView(webView, child2Params);
break;
case Right:
webView = new WebView(context);
child2Params.addRule(RelativeLayout.ALIGN_PARENT_RIGHT);
layout.addView(webView, child2Params);
break;
case Center:
webView = new WebView(context);
child2Params.addRule(RelativeLayout.CENTER_VERTICAL);
layout.addView(webView, child2Params);
break;
default:
webView = new WebView(context);
child2Params.addRule(RelativeLayout.CENTER_VERTICAL);
layout.addView(webView, child2Params);
break;
}
}
常にボタンの下に表示され、ボタンがその下に隠れないように、常にボタンの下に webview を設定する方法を教えてください。ありがとうございました。