2012-09-05 2 views
6

ich das folgende Layout programmatisch gemacht:Margins nicht funktioniert

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

Aber: Egal, was ich als Wert in setMargins geben, macht es keinen Effekt hat überhaupt.
Was ist der Grund?

Das Layout hat eine Höhe und Breite von fill_parent, so dass nicht das Problem sein kann ..

Thx :)

+0

welche Art von LayoutParams verwenden Sie? – njzk2

+0

RelativeLayout.LayoutParams –

+0

Sie sollten eine LinearLayout.LayoutParams verwenden, da Sie die Ansicht in eine LinearLayout setzen (obwohl dies nicht das Problem sein sollte, da beide MarginLayoutParams sind) – njzk2

Antwort

0
progressLayout.setGravity(Gravity.CENTER); 

richtet das Textview und progressbar in der Mitte.

+0

Das ist, was ich erreichen möchte, aber ich möchte einige Rand zwischen der Textansicht und der Fortschrittsleiste. –

0

diese Lösung Versuchen

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