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

LinearLayout dynamisch erstellt - Elemente werden nicht angezeigt

Dieses Thema im Forum "Android App Entwicklung" wurde erstellt von J4y, 30.08.2011.

  1. J4y, 30.08.2011 #1
    J4y

    J4y Threadstarter Neuer Benutzer

    Beiträge:
    14
    Erhaltene Danke:
    2
    Registriert seit:
    12.06.2011
    Hallo alle miteinander,

    ich möchte eine ViewGroup dynamisch erstellen und versuche daher, das Layout direkt in Java zu erzeugen.
    Das ist momentan mein Code:
    Code:
    public class MyActivityextends Activity {
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            
            LinearLayout layout = new LinearLayout(this);
            layout.setOrientation(LinearLayout.VERTICAL);
            layout.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));
            
            
            TextView titleView = new TextView(this);
            titleView.setWidth(LayoutParams.WRAP_CONTENT);
            titleView.setHeight(LayoutParams.WRAP_CONTENT);
            titleView.setTextAppearance(this, android.R.attr.textAppearanceLarge);
            titleView.setText("Hallo Welt!");
            layout.addView(titleView);
           
            setContentView(layout);
    
        }
    }
    Wenn ich das so starte, wird allerdings der TextView nicht angzeigt.
    Der Bildschirm ist da und auf der Konsole werden keine Fehler geworfen.

    Weiß jemand Rat?
     
  2. Tom299, 01.09.2011 #2
    Tom299

    Tom299 Android-Experte

    Beiträge:
    602
    Erhaltene Danke:
    120
    Registriert seit:
    31.08.2011
    Hmm, ich hab jetzt etwas rumprobiert, aber bei mir passiert auch nichts.

    Wenn man layout.addView(titleView, 120, 80) verwendet (also explizite
    größenangabe), funktioniert es. Aber wieso, ka ...
     
    J4y bedankt sich.
  3. J4y, 01.09.2011 #3
    J4y

    J4y Threadstarter Neuer Benutzer

    Beiträge:
    14
    Erhaltene Danke:
    2
    Registriert seit:
    12.06.2011
    Hey,

    ich hab die Antwort mittlerweile gefunden.
    WRAP_CONTENT und FILL_PARENT sind keine Längenangaben und werden daher auch nicht über setWidth bzw. setSize gesetzt. Es sind ja nur Konstanten von daher haben die Wahrscheinlich immer eine Länge oder Höhe von 1 oder so definiert.
    Stattdessen muss man sie über
    Code:
    LayoutParams params = new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
    nameView.setLayoutParams(params);
    festlegen.
    Aber danke für die Antwort! :)
     

Diese Seite empfehlen