J'affiche un TableLayout avec des lignes comme suit:
<?xml version="1.0" encoding="utf-8"?>
<TableRow
xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:layout_width="match_parent"
Android:layout_height="wrap_content">
<RelativeLayout
Android:layout_width="match_parent"
Android:layout_height="wrap_content">
<TextView
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:id="@+id/one"
Android:layout_marginLeft="10dip"
Android:textColor="#B0171F" />
<TextView
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:layout_below="@id/one"
Android:id="@+id/two"
Android:layout_marginLeft="10dip"
Android:ellipsize="none"
Android:singleLine="false"
Android:scrollHorizontally="false"
Android:maxLines="10"
Android:textColor="@Android:color/black" />
</RelativeLayout>
</TableRow>
Je frappe cela avec tout ce que je peux trouver ici et auquel je peux penser pour permettre au texte de se dérouler sur plusieurs lignes, mais en vain: Le texte est toujours forcé sur une seule ligne, en cours d'exécution sur l'écran. Il peut être important que je travaille à l'intérieur d'un TableRow ici, et pour autant que je sache, cela n'a pas été traité sur ce site.
Alors, comment puis-je forcer mon deuxième TextView à encapsuler sur plusieurs lignes?
TextView encapsulera le texte si la colonne dans laquelle il se trouve est définie pour se réduire. Parfois, il ne s'emballe pas exactement, si le texte se termine par ", ...", alors il est un peu plus long qu'exactement n lignes.
Voici un exemple, le TextView avec l'id question
se terminera:
<TableLayout
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:shrinkColumns="*">
<TableRow>
<TextView
Android:id="@+id/question"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"/>
</TableRow>
</TableLayout>
Par souci d'exhaustivité, voici comment mon TableLayout
lit en XML:
<TableLayout
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:layout_marginTop="10dp"
Android:shrinkColumns="0"
Android:stretchColumns="0"
Android:id="@+id/summaryTable">
</TableLayout>
Je remplis plus tard ceci avec TableRow
s.
Par code fonctionne également:
TableLayout tablelayout = (TableLayout) view.findViewById(R.id.table);
tablelayout.setColumnShrinkable(1,true);
1 est le nombre de colonnes.
Essayez peut-être comme suit:
myTextView.setText(Html.fromHtml("On " + stringData1 + "<br> at " + strinData2);
Je sais, ressemble un peu à une solution "en fauteuil roulant", mais fonctionne pour moi, même si je remplis également un texte par programme.
Vous pouvez également utiliser le code ci-dessous
<TableRow >
<TextView
Android:id="@+id/tv_description_heading"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:gravity="left"
Android:padding="8dp"
Android:text="@string/rating_review"
Android:textColor="@color/black"
Android:textStyle="bold" />
<TextView
Android:id="@+id/tv_description"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:gravity="left"
Android:maxLines="4"
Android:padding="8dp"
Android:text="The food test was very good."
Android:textColor="@color/black"
Android:textColorHint="@color/hint_text_color" />
</TableRow>