J'ai regardé autour de moi et j'ai trouvé de nombreuses solutions possibles pour centrer une textview dans une mise en page. Mais aucun n'a travaillé pour moi. Mon textview est dans un TableLayout qui est décrit par le code XML suivant:TextView layout_gravity ne fonctionne pas par programme
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/schedule_main_holder">
<TableLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:stretchColumns="0"
android:id="@+id/schedule_table_entry">
</TableLayout>
</LinearLayout>
Ce que je fais est de faire une nouvelle TableRow, puis en ajoutant un TextView et un ListView ... mais le textview doit être centré verticalement. Pour que je fais:
TableRow row = new TableRow(this);
TextView tview = new TextView(this);
tview.setText("Wednesday");
TableRow.LayoutParams layoutParams = new TableRow.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT, Gravity.CENTER_VERTICAL);
tview.setLayoutParams(layoutParams);
row.addView(tview);
Le problème est que le TextView est toujours au-dessus de la cellule et non au milieu comme il se doit. J'ai essayé un mélange de combinaisons (même la méthode FrameLayout décrit dans une autre réponse) et je n'arrive pas à centrer le textview dans la cellule du tableau.
Merci à l'avance
Merci pour la réponse mais j'ai déjà essayé la méthode inflatable et la layout_gravity était simple ignorée. Je veux le layout_gravity parce que je veux que le textview soit centré sur la cellule et non sur le texte lui-même. Au moins, j'ai essayé setGravity et cela n'a pas fonctionné et quand la textview a été définie en xml, layout_gravity a fonctionné. –
Réponse mise à jour pour faire la suggestion .. suggéré. – Warpzit
Merci pour la réponse que je viens d'essayer et cela fonctionne. J'ai essayé l'approche de gonflement mais pas dans le a TableRow, à la place j'ai gonflé le TextView directement et cela a pu être le problème. –