Ich habe das aus verschiedenen Blickwinkeln getroffen. Grundsätzlich ist der Kern dies:Android: LayoutParams für TextView lässt die Ansicht verschwinden, programmgesteuert
Ich habe eine Vorlage in XML für eine Schnittstelle, die programmgesteuert ausgeführt werden muss, so dass es dynamisch während des Laufs gefüllt wird.
Das Problem hier ist, dass das XML TextView einige Layout-Optimierungen hat (die funktionieren) und notwendig sind. Aber wenn ich sie tatsächlich in Code einstelle, erscheint das TextView nicht einmal.
(Die Textview, nebenbei gesagt, in einem TableRow verschachtelt ist, so dass das Gespräch auf dem Gewicht.) Die XML-Vorlage ich zum ersten Mal, die für den Code als Referenz zu verwenden, ist dies, und es funktioniert gut:
<TextView
android:id="@+id/txtviewWhiteBox"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1.0"
android:background="@drawable/textview_9patch_white"
android:gravity="center"
android:text="75"
android:textColor="@android:color/black"
android:layout_margin="20dp"
android:padding="20dp"
android:textSize="40dp" />
Wie gesagt, das ist perfekt. Wenn ich dasselbe Layout in Code ausführe und LayoutParams anwende, verschwindet die TextView.
Hier ist der relevante Auszug:
int textViewExampleID = 9001;
private TextView txtviewExample = new TextView(this);
private void buildTextView(){
LayoutParams paramsExample = new LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT,1.0f);
txtviewExample.setId(textViewExampleID);
txtviewExample.setBackgroundResource(R.drawable.textview_9patch_white);
txtviewExample.setGravity(Gravity.CENTER);
txtviewExample.setTextColor(getResources().getColor(android.R.color.black));
paramsExample.setMargins(20, 20, 20, 20);
txtviewExample.setPadding(20, 20, 20, 20);
txtviewExample.setTextSize(40);
txtviewExample.setText("customExample");
//if I comment out the following line, this TextView displays.
//if I leave it in, it doesn't display.
txtviewExample.setLayoutParams(paramsExample);
}
Ich weiß, es gibt alle Arten von verfügbaren Klassen für LayoutParams, und ich habe mit ihnen alle LinearLayout.LayoutParams gespielt, TableView.LayoutParams, RelativeLayout.LayoutParams, LayoutParams einfach von selbst ... Egal, was ich versuche, jeder Versuch, "setLayoutParams" aufzurufen, macht die gesamte TextView weg. Ich habe die Foren hier durchforstet, und habe die Antwort nicht ganz gefunden. Das kann nicht so ungewöhnlich sein.
Haben Sie versucht, 'TableRow.LayoutParams' http://developer.android.com/reference/android/widget/TableRow.LayoutParams.html –
ich gerade getan hast, (vermisst Kommentar letzte Nacht, darnit) und es funktionierte. Danke mann – Octoth0rpe
Sie sind willkommen :) –