android: LayoutParams dla TextView sprawia, że ​​widok znika, programowo

Uderzyłem w to z różnych punktów widzenia. Zasadniczo chodzi o to:

Położyłem szablon w XML dla interfejsu, który POTRZEBUJE być uruchamiany programowo, więc będzie on zapełniany dynamicznie podczas uruchamiania.

Problem polega na tym, że XML TextView ma kilka poprawek układu (które działają) i są konieczne. Ale jeśli ustawię je w kodzie, TextView nawet się nie pojawi.

(TextView, nawiasem mówiąc, jest zagnieżdżony wewnątrz TableRow, a więc wywołanie do wagi). Szablon XML, który zaprojektowałem jako pierwszy, do wykorzystania jako odniesienie dla kodu, jest następujący i działa dobrze:

<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" />

Jak powiedziałem, to doskonale się układa. Kiedy jednak uruchomię ten sam układ kodu i zastosuję LayoutParams, TextView zniknie.

Oto odpowiedni fragment:

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

Zdaję sobie sprawę, że istnieją różne rodzaje klas dla LayoutParams, i grałem z nimi wszystkimi LinearLayout.LayoutParams, TableView.LayoutParams, RelativeLayout.LayoutParams, LayoutParams tylko ... Nieważne, który spróbuję, każda próba wywołania „setLayoutParams” powoduje usunięcie całego TextView. Przejrzałem fora tutaj i nie znalazłem odpowiedzi. To nie może być takie rzadkie.

questionAnswers(3)

yourAnswerToTheQuestion