2012-09-05 10 views
6

ho fatto il seguente schema di programmazione:Margini non funziona

LinearLayout progressLayout = new LinearLayout(this); 
    progressLayout.setOrientation(LinearLayout.VERTICAL); 

    TextView t = new TextView(this); 
    t.setText("Test.."); 
    t.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 20); 

    LayoutParams l = new LayoutParams(android.view.ViewGroup.LayoutParams.WRAP_CONTENT, android.view.ViewGroup.LayoutParams.WRAP_CONTENT); 
    l.setMargins(10, 10, 10, 25); ===> does not work? 
    t.setLayoutParams(l); 

    ProgressBar circle = new ProgressBar(this, null, 
      android.R.attr.progressBarStyleLarge); 
    circle.setLayoutParams(new LayoutParams(android.view.ViewGroup.LayoutParams.WRAP_CONTENT, android.view.ViewGroup.LayoutParams.WRAP_CONTENT)); 


    progressLayout.setLayoutParams(new LayoutParams(
      android.view.ViewGroup.LayoutParams.FILL_PARENT, 
      android.view.ViewGroup.LayoutParams.FILL_PARENT)); 

    progressLayout.setGravity(Gravity.CENTER); 

    progressLayout.addView(t); 
    progressLayout.addView(circle); 

    this.setContentView(progressLayout); 

Ma no Mather quello che io do come valori in SetMargins, non ha alcun effetto a tutti.
Qual è il motivo?

La disposizione ha un'altezza e larghezza fill_parent modo che non può essere il problema ..

Thx :)

+0

che tipo di LayoutParams stai usando? – njzk2

+0

RelativeLayout.LayoutParams –

+0

dovresti utilizzare un LinearLayout.LayoutParams, dal momento che stai mettendo la vista in un LinearLayout (anche se questo non dovrebbe essere il problema dato che entrambi sono MarginLayoutParams) – njzk2

risposta

0
progressLayout.setGravity(Gravity.CENTER); 

allinea TextView e progressbar al centro.

+0

Questo è quello che voglio ottenere, ma voglio un po ' margine tra la textview e la barra di avanzamento. –

0

Prova questa soluzione

LinearLayout progressLayout = new LinearLayout(this); 
     progressLayout.setOrientation(LinearLayout.VERTICAL); 

     TextView t = new TextView(this); 
     t.setText("Test.."); 
     t.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 20); 

     LayoutParams l = new LayoutParams(
       android.view.ViewGroup.LayoutParams.WRAP_CONTENT, 
       android.view.ViewGroup.LayoutParams.WRAP_CONTENT); 
     // ===> does not work? 
     // l.setMargins(50, 50, 50, 25); 
     // t.setLayoutParams(l); 
     l.leftMargin = 10; 
     l.topMargin = 0; 
     l.rightMargin = 0; 
     l.bottomMargin = 150; 

     ProgressBar circle = new ProgressBar(this, null, 
       android.R.attr.progressBarStyleLarge); 
     LayoutParams p = new LayoutParams(
       android.view.ViewGroup.LayoutParams.WRAP_CONTENT, 
       android.view.ViewGroup.LayoutParams.WRAP_CONTENT); 
     // circle.setLayoutParams(p); 
     p.leftMargin = 0; 
     p.topMargin = 0; 
     p.rightMargin = 0; 
     p.bottomMargin = 20; 

     progressLayout.setLayoutParams(new LayoutParams(
       android.view.ViewGroup.LayoutParams.FILL_PARENT, 
       android.view.ViewGroup.LayoutParams.FILL_PARENT)); 

     progressLayout.setGravity(Gravity.CENTER); 

     progressLayout.addView(t, l); 
     progressLayout.addView(circle, p); 

     this.setContentView(progressLayout);