L'ho colpito da diversi angoli. Fondamentalmente il succo è questo:android: LayoutParams per TextView fa scomparire la vista, a livello di programmazione
Ho disposto un modello in XML per un'interfaccia che DEVE essere eseguita a livello di codice, quindi verrà popolata dinamicamente durante la corsa.
Il problema qui è che XML TextView presenta alcune modifiche al layout (che funzionano) e sono necessarie. Ma se li metto effettivamente in codice, il TextView non viene nemmeno visualizzato.
(Il TextView, tra l'altro, è annidato all'interno di un TableRow, quindi la chiamata al peso.) Il modello XML ho progettato prima, da utilizzare come riferimento per il codice è questo, e funziona bene:
<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" />
Come ho detto, che si staglia perfettamente. Tuttavia, quando eseguo lo stesso layout nel codice e applico LayoutParams, TextView scompare.
Ecco il frammento di rilevante:
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);
}
Mi rendo conto che ci sono tutti i tipi di classi disponibili per LayoutParams, e ho giocato con loro tutti i LinearLayout.LayoutParams, TableView.LayoutParams, RelativeLayout.LayoutParams, LayoutParams da solo ... Non importa quale cerco, qualsiasi tentativo di chiamare "setLayoutParams" rende tutto il TextView andato. Ho setacciato i forum qui, e non ho ancora trovato la risposta. Questo non può essere così raro.
Hai provato 'TableRow.LayoutParams' http://developer.android.com/reference/android/widget/TableRow.LayoutParams.html –
ho appena fatto, (perso questo commento ieri sera, Darnit) e ha funzionato. Grazie uomo – Octoth0rpe
Siete i benvenuti :) –