Wie gibt man einer TextView ein Margin?

B

baileys

Neues Mitglied
0
Hey Leute,

habe schon gegoogelt, aber nix produktives gefunden. Wie gibt man einer TextView ein Margin?
 
Margin? Als Abstand zu einer anderen View? Dann würde ich sagen android:padding in XML bzw. setPadding() in Java.
 
In XML kann man margin-Angaben machen aber wie macht man das ganze in Java? Padding hat einen anderen Effekt.
 
Wie sieht denn das XML-Attribut aus?
 
Code:
<TextView 
	android:layout_width="90px" 
	android:layout_height="wrap_content"
	android:text = "Menü" 
	android:textSize="16px" 
        android:textColor="@color/font_grey"
	android:background="@color/background_white" 
	android:textStyle="bold" 
	android:shadowRadius="1.5" 
	android:shadowColor="#CCCCCC" 
	android:shadowDx="3.0" 
	android:shadowDy="3.0" 
	android:layout_marginBottom="5px" 
	android:layout_marginTop="5px" 
	android:layout_marginLeft="2px">
</TextView>
 
über die LayoutParams

LinearLayout.LayoutParams myParams = new LinearLayout.LayoutParams(1,1);
myParams.setMargins(20,0,20,0);
myTextView.setLayoutParams(myParams);

Du setzt hier jedoch px und keine dpi...
 
Hab ich versucht, aber da zeigt es mir meine TextView gleich gar nicht mehr an.

Code:
TextView tv1 = new TextView(this);
tv1.setText("text");
tv1.setGravity(Gravity.CENTER);
tv1.setWidth(20);
tv1.setTextColor(R.color.font_grey);
tv1.setPadding(2, 2, 0, 0);
LinearLayout.LayoutParams myParams = new LinearLayout.LayoutParams(1,1);
myParams.setMargins(0,0,0,1);
tv1.setLayoutParams(myParams);
tr.addView(tv1);
 
Zuletzt bearbeitet:
ja das passiert wenn man code snippets aus dem Kopf schreibt^^
Übergib mal statt 1 LayoutParams.WRAP_CONTENT
 
Hatte ich auch schon ausprobiert, aber ergibt das gleiche Problem.

LogCat bringt keine Fehlermeldung.
 
Ich würde mal behaupten, dass du Margin von 1px nicht sehen kannst. Nimm mal einen höheren Wert.
 
Hab ich gemacht. Aber das TextView ist ja gar nicht mehr zu sehen sobald die LayoutParams gesetzt sind. Komisch...
 
Code:
LinearLayout.LayoutParams params2 = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.FILL_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT);
params2.setMargins(20, 20, 20, 20);

TextView t2 = new TextView(this);
t2.setLayoutParams(params2);
t2.setText("Test");
t2.setBackgroundColor(Color.MAGENTA);
t2.setPadding(10, 10, 10, 10);
Versuch das mal mit konstanten Werten, also ohne deinen Warenkorb.

Und im Konstruktor hast du jetzt LinearLayout.LayoutParams.FILL_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT genommen, anstatt 1, 1, ja?
 
Zeigt das TextView immernoch nicht an.

Code:
TextView tv1 = new TextView(this);
tv1.setText("text");
tv1.setGravity(Gravity.CENTER);
tv1.setWidth(20);
tv1.setTextColor(R.color.font_grey);
tv1.setPadding(2, 2, 0, 0);
LinearLayout.LayoutParams myParams = new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT);
myParams.setMargins(0,0,0,10);
tv1.setLayoutParams(myParams);
tr.addView(tv1);
 
Wie sieht denn dein tr aus?
 
XML:

Code:
<TableRow 
     android:id="@+id/TableRow" 
     android:layout_width="wrap_content" 
     android:layout_height="fill_parent" 
     android:background="@color/background_white" 
     android:layout_marginTop="1px">
</TableRow>

Code:
TableLayout tl = (TableLayout)findViewById(R.id.TableWarenkorb);
			
TableRow tr = new TableRow(this);
tr.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.FILL_PARENT));
tr.setBackgroundColor(R.color.background_white);    
		     
TextView tv1 = new TextView(this);
tv1.setText("text");
tv1.setGravity(Gravity.CENTER);
tv1.setWidth(20);
tv1.setTextColor(R.color.font_grey);
tv1.setPadding(2, 2, 0, 0);
LinearLayout.LayoutParams myParams = new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT);
myParams.setMargins(0,0,0,10);
tv1.setLayoutParams(myParams);
tr.addView(tv1);
 
Zuletzt bearbeitet:
Du hast recht... das ist nicht wirklich möglich... scheint ein Bug oder ein Denkfehler in unseren Köpfen zu sein.

Das wenigstens etwas angezeigt wird habe ich hiermit erreicht:
Code:
		TextView tv = new TextView(this);
		LayoutParams lp = new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
		MarginLayoutParams mlp = new MarginLayoutParams(lp);
		mlp.setMargins(0, 0, 0, 10);
		//tv.setLayoutParams(mlp);
		tv.setText("test");
		
		LinearLayout ll = new LinearLayout(this);
		//ll.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
		ll.addView(tv, mlp);
		
		TableRow tr = new TableRow(this);
		//tr.setLayoutParams(new TableRow.LayoutParams(TableRow.LayoutParams.WRAP_CONTENT, TableRow.LayoutParams.FILL_PARENT));
		tr.setBackgroundColor(Color.WHITE);
		tr.addView(ll, new TableRow.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
		
		TableLayout tl = new TableLayout(this);
		tl.setLayoutParams(new TableLayout.LayoutParams(TableLayout.LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
		tl.addView(tr, new TableLayout.LayoutParams(TableRow.LayoutParams.WRAP_CONTENT, TableRow.LayoutParams.FILL_PARENT));
		
		setContentView(tl);
 

Ähnliche Themen

D
  • Data2006
Antworten
14
Aufrufe
486
jogimuc
J
M
Antworten
3
Aufrufe
166
moin
M
D
Antworten
14
Aufrufe
1.704
chrs267
chrs267
Zurück
Oben Unten