0

他の要素の位置に応じて、自分のビューに要素を配置したい。説明させてください:まず、2つのテキストビューがあり、2番目(villeOffre)を最初のもの(titreOffre)の下に正常に配置しました:

titreOffre = (TextView) findViewById(R.id.offreTitre);
titreOffre.setText(capitalizedString(offre.getTitle()));
villeOffre = (TextView) findViewById(R.id.offreVille);
villeOffre.setText(offre.getLocality());
infos = (TextView) findViewById(R.id.infos);

ViewTreeObserver vto = titreOffre.getViewTreeObserver();
vto.addOnGlobalLayoutListener(new OnGlobalLayoutListener(
{
    @Override
    public void onGlobalLayout()
    {
        FrameLayout.LayoutParams params = (FrameLayout.LayoutParams) villeOffre.getLayoutParams();
        params.setMargins(15,titreOffre.getBottom()+12,15,0);
        villeOffre.setLayoutParams(params);
        titreOffre.getViewTreeObserver().removeOnGlobalLayoutListener(this);
    }
});

これは完全に機能しますが、今は villeOffre の位置に依存する 3 番目のテキストビュー (情報) を配置したいと考えています。どうやってするか ?

どうもありがとう。

4

1 に答える 1

3
public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        rr = new RelativeLayout(this);

        b1 = new Button(this);
        b1.setId(R.id.Button01);
        recent = b1;
        b1.setText("Click me");
        rr.addView(b1);


        setContentView(rr);

        b1.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                tv1 = new TextView(can.this);
                tv1.setId((int)System.currentTimeMillis());
                lp = new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT);
                lp.addRule(RelativeLayout.BELOW, recent.getId());
                tv1.setText("Time: "+System.currentTimeMillis());
                rr.addView(tv1, lp);
                recent = tv1;
            }
        });
    }
于 2012-07-16T16:33:50.443 に答える