1

xml ファイルで相対レイアウトを作成し、将来のビューのためにこのレイアウトのある場所にプレースホルダーを配置するとします。この将来のビューは、別の XML ビューにある別のレイアウトです。コードでそれを行うにはどうすればよいですか?将来のビューを膨らませる必要があることはわかっていますが、それをメイン レイアウトに追加すると、作成したプレース ホルダーではなく左上のコアナーになってしまいます ありがとう

4

2 に答える 2

1

プレースホルダーを忘れて、通常のようにビューを追加し、作成時に必要なパラメーターを指定するだけです。

View v = layoutInflater.inflate(R.layout.future_view, null);
RelativeLayout.LayoutParams relativeParams = new RelativeLayout.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT);
v.addRule(RelativeLayout.ALIGN_WITH_PARENT_TOP);
relativeLayout.addView(v,relativeParams)
于 2012-04-10T02:23:49.393 に答える
1

レイアウトの任意の場所に任意のビューを追加できます。ビューの親ビューを RelativeLayout として持つことができます。ビューを画面上の (x, y) ポイントに配置したいとします。メソッドによって画面上のレイアウトの位置を見つけます。

View.getLocationOnScreen()

この方法で x1 と y1 を取得するとします。ここで、ビューの絶対 x、y 座標 (親の絶対 x1、y1) によって、親レイアウトに対するビューの将来の (x、y) 位置を見つけます。x2、y2として差を見つけたとしましょう。

ビューの LayoutParams を以下のように定義します。

    View v = layoutInflater.inflate(R.layout.future_view, null);
    RelativeLayout.LayoutParams params= new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
   params.setMargins(x2, y2, 0, 0);


    relativeLayout.addView(v,relativeParams)
于 2012-04-10T04:46:19.247 に答える