1

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 を設定する方法を教えてください。ありがとうございました。

4

0 に答える 0