2012-09-05 24 views
6

me hizo la siguiente distribución mediante programación:márgenes no trabaja

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

Pero no Mather lo que doy como valores en SetMargins, que no tiene ningún efecto en absoluto.
¿Cuál es el motivo?

El trazado tiene una heigth y el ancho de fill_parent por lo que no puede ser el problema ..

Thx :)

+0

qué tipo de LayoutParams está usando? – njzk2

+0

RelativeLayout.LayoutParams –

+0

debe usar un LinearLayout.LayoutParams, ya que está poniendo la vista en LinearLayout (aunque esto no debería ser el problema, ya que ambos son MarginLayoutParams) – njzk2

Respuesta

0
progressLayout.setGravity(Gravity.CENTER); 

alinea el TextView y progressbar en el centro.

+0

Eso es lo que quiero lograr, pero quiero algunos margen entre la vista de texto y la barra de progreso. –

0

Revise la solución

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