android: Mit LayoutParams for TextView wird die Ansicht programmgesteuert ausgeblendet

Ich habe dies aus verschiedenen Blickwinkeln getroffen. Grundsätzlich ist das Wesentliche:

Ich habe eine XML-Vorlage für eine Schnittstelle entworfen, die programmgesteuert ausgeführt werden muss, damit sie während der Ausführung dynamisch aufgefüllt wird.

Das Problem hierbei ist, dass die XML-Textansicht einige Layout-Optimierungen aufweist (die funktionieren) und erforderlich sind. Aber wenn ich sie tatsächlich in Code setze, wird die Textansicht nicht einmal angezeigt.

(Die TextView ist übrigens in einer TableRow verschachtelt, also der Aufruf zum Gewichten.) Die XML-Vorlage, die ich zuerst als Referenz für den Code entworfen habe, ist die folgende und funktioniert einwandfrei:

<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 ich schon sagte, das ist perfekt. Wenn ich dasselbe Layout in Code ausführe und LayoutParams anwende, verschwindet die Textansicht.

Hier ist das relevante Snippet:

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

Mir ist klar, dass für LayoutParams alle möglichen Klassen zur Verfügung stehen, und ich habe mit allen LinearLayout.LayoutParams, TableView.LayoutParams, RelativeLayout.LayoutParams, LayoutParams gespielt "setLayoutParams" macht die gesamte Textansicht verschwunden. Ich habe die Foren hier durchsucht und die Antwort nicht ganz gefunden. Das kann nicht SO ungewöhnlich sein.

Antworten auf die Frage(3)

Ihre Antwort auf die Frage