2012-07-16 29 views
0

我想根据其他人的位置在我的视图中放置元素。让我来解释:首先,我有两个textviews,我已经成功地把第二(villeOffre)之一的,第一个(titreOffre):Android:如何设置TextViews位置取决于其他编程方式?

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); 
    } 
}); 

这工作完全,但现在我希望把第三的TextView (infos),这取决于villeOffre的位置。怎么做 ?

非常感谢。

回答

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; 
      } 
     }); 
    } 
+0

也许这会帮助你,如果不忘记接受它并投票给我。谢谢 :) – SALMAN 2012-07-16 16:34:41

相关问题