1. Nimm jetzt an unserem Uhans - 3. ADVENT - Gewinnspiel teil - Alle Informationen findest Du hier!

Wie gibt man einer TextView ein Margin?

Dieses Thema im Forum "Android App Entwicklung" wurde erstellt von baileys, 23.09.2010.

  1. baileys, 23.09.2010 #1
    baileys

    baileys Threadstarter Junior Mitglied

    Beiträge:
    35
    Erhaltene Danke:
    0
    Registriert seit:
    22.09.2010
    Hey Leute,

    habe schon gegoogelt, aber nix produktives gefunden. Wie gibt man einer TextView ein Margin?
     
  2. BenOtto, 23.09.2010 #2
    BenOtto

    BenOtto Android-Hilfe.de Mitglied

    Beiträge:
    141
    Erhaltene Danke:
    15
    Registriert seit:
    30.08.2010
    Margin? Als Abstand zu einer anderen View? Dann würde ich sagen android:padding in XML bzw. setPadding() in Java.
     
  3. baileys, 23.09.2010 #3
    baileys

    baileys Threadstarter Junior Mitglied

    Beiträge:
    35
    Erhaltene Danke:
    0
    Registriert seit:
    22.09.2010
    In XML kann man margin-Angaben machen aber wie macht man das ganze in Java? Padding hat einen anderen Effekt.
     
  4. BenOtto, 23.09.2010 #4
    BenOtto

    BenOtto Android-Hilfe.de Mitglied

    Beiträge:
    141
    Erhaltene Danke:
    15
    Registriert seit:
    30.08.2010
    Wie sieht denn das XML-Attribut aus?
     
  5. baileys, 23.09.2010 #5
    baileys

    baileys Threadstarter Junior Mitglied

    Beiträge:
    35
    Erhaltene Danke:
    0
    Registriert seit:
    22.09.2010
    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>
    
     
  6. Fr4gg0r, 23.09.2010 #6
    Fr4gg0r

    Fr4gg0r App-Anbieter (Werbung)

    Beiträge:
    2,506
    Erhaltene Danke:
    447
    Registriert seit:
    21.12.2009
    ü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...
     
  7. baileys, 24.09.2010 #7
    baileys

    baileys Threadstarter Junior Mitglied

    Beiträge:
    35
    Erhaltene Danke:
    0
    Registriert seit:
    22.09.2010
    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: 24.09.2010
  8. Fr4gg0r, 24.09.2010 #8
    Fr4gg0r

    Fr4gg0r App-Anbieter (Werbung)

    Beiträge:
    2,506
    Erhaltene Danke:
    447
    Registriert seit:
    21.12.2009
    ja das passiert wenn man code snippets aus dem Kopf schreibt^^
    Übergib mal statt 1 LayoutParams.WRAP_CONTENT
     
  9. baileys, 24.09.2010 #9
    baileys

    baileys Threadstarter Junior Mitglied

    Beiträge:
    35
    Erhaltene Danke:
    0
    Registriert seit:
    22.09.2010
    Hatte ich auch schon ausprobiert, aber ergibt das gleiche Problem.

    LogCat bringt keine Fehlermeldung.
     
  10. BenOtto, 24.09.2010 #10
    BenOtto

    BenOtto Android-Hilfe.de Mitglied

    Beiträge:
    141
    Erhaltene Danke:
    15
    Registriert seit:
    30.08.2010
    Ich würde mal behaupten, dass du Margin von 1px nicht sehen kannst. Nimm mal einen höheren Wert.
     
  11. baileys, 24.09.2010 #11
    baileys

    baileys Threadstarter Junior Mitglied

    Beiträge:
    35
    Erhaltene Danke:
    0
    Registriert seit:
    22.09.2010
    Hab ich gemacht. Aber das TextView ist ja gar nicht mehr zu sehen sobald die LayoutParams gesetzt sind. Komisch...
     
  12. BenOtto, 24.09.2010 #12
    BenOtto

    BenOtto Android-Hilfe.de Mitglied

    Beiträge:
    141
    Erhaltene Danke:
    15
    Registriert seit:
    30.08.2010
    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?
     
  13. baileys, 24.09.2010 #13
    baileys

    baileys Threadstarter Junior Mitglied

    Beiträge:
    35
    Erhaltene Danke:
    0
    Registriert seit:
    22.09.2010
    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);		
    
     
  14. BenOtto, 24.09.2010 #14
    BenOtto

    BenOtto Android-Hilfe.de Mitglied

    Beiträge:
    141
    Erhaltene Danke:
    15
    Registriert seit:
    30.08.2010
    Wie sieht denn dein tr aus?
     
  15. baileys, 27.09.2010 #15
    baileys

    baileys Threadstarter Junior Mitglied

    Beiträge:
    35
    Erhaltene Danke:
    0
    Registriert seit:
    22.09.2010
    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: 27.09.2010
  16. BenOtto, 27.09.2010 #16
    BenOtto

    BenOtto Android-Hilfe.de Mitglied

    Beiträge:
    141
    Erhaltene Danke:
    15
    Registriert seit:
    30.08.2010
    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);
    
     

Diese Seite empfehlen