8
votes

Android: Deux problèmes à l'aide de Tablerow + TextView à TableLayout

J'utilise Tableau + TextView pour faire une vue simple pour les articles de blog et leurs réponses. Dans chaque tablier, je mets un TextView in. Maintenant, j'ai deux problèmes:

  1. Le texte plus long que l'écran ne s'allonge pas automatiquement pour être multiligne. Est-ce par conception de Tablerow? J'ai déjà défini tr_content.setsingleline (false); [MISE À JOUR] Ceci a été adressé, je pense que je devrais changer Fill_Parent pour être wrap_content dans textview. tr_author_time.setlayOutparams (nouveau LayoutParams ( LayoutParams. ** Wrap_Content **, Layoutparams.wrap_content));

  2. La table ne fera pas défiler comme ListView. Mes rangées sont plus que la taille de l'écran. Je m'attends à ce que la table puisse être défilée pour regarder juste comme ListView. Est-ce possible?

    Voici mon code: xxx


1 commentaires

Comment pouvons-nous faire deux rangées de hauteur égale? S'il vous plaît voir ma question Stackoverflow.com/q/10779802/720176


3 Réponses :


14
votes

Ce n'est pas vraiment une réponse complète, mais cela semble vraiment que vous faites cela la solution difficile.

Au lieu de construire vos tableaux manuellement, vous devez les configurer dans XML comme ceci: P>

TAPEROW.XML: P>

<ScrollView>
    <TableLayout android:id="@+id/arcitle_content_table" />
</ScrollView>


8 commentaires

Il semble que l'ajout dans n'est pas possible. Le programme sort avec une erreur. En fait, je ne vois que des vues peuvent être ajoutées dans ScrollView mais pas la mise en page.


Une nappe-majors est un descendant de la vue. Il devrait fonctionner parfaitement. Quelle est l'erreur?


Travaux. Oublié d'ajouter des attributs de largeur et de hauteur à ScrollView. Merci synic!


@Synnic pouvez-vous s'il vous plaît modifier le fichier Tablerow.xml avec le code complet s'il vous plaît. Je reçois une erreur et je ne sais pas que dois-je ajouter plus dans cette mise en page.


quelque chose ne va pas! Taperow Row = (Tablerow) Inflater.inflate (R.ID.Tablerow, TL, FALSE); Taperow Row = (Tablerow) Inflater.inflate (R.Layout.TableRow, TL, Faux); C'EST BON


Comment pouvons-nous faire deux rangées de hauteur égale? S'il vous plaît voir ma question Stackoverflow.com/q/10779802/720176


@guest je reçois la même erreur. Tablerow Row = (Tablerow) Inflater.inflate (R.Layout.TableLerow, TL, FALSE); N'est pas correct! J'ai essayé: mayerow rangée = (Tablerow) Inflader.inflate (r.id.my_row_id, tl, false); et a obtenu cette erreur: fatale exception: Main- Java.lang.RuntimeException: android.content.res.Resources $ NOTFoundException: ID de ressource # 0x7f070012 Type # 0x12 n'est pas valide Comment puis-je résoudre ce problème?


@Synnic, j'ai 5 colonnes dans table_row.xml, je veux maintenant que célibataire I.e. 5ème TextView en multif ligne. Est-ce possible ou tout autre moyen de le faire?



17
votes

Une chose plus appropriée à faire pour les articles d'emballage aurait été d'ajouter Android: ShrinkColumns = "*" ou Android: rétrécitColumns = "1" à l'étable, cela aurait probablement corrigé le problème d'emballage.

pour plus de détails


2 commentaires

+1 à coup sûr. J'avais un problème similaire et c'était la solution la plus facile / plus robuste. Merci!


Comment pouvons-nous faire deux rangées de hauteur égale? S'il vous plaît voir ma question Stackoverflow.com/q/10779802/720176



7
votes

Pour envelopper le texte dans les rangées de table:

Par défaut, les lignes TableLayout sont adaptées à la largeur de leur contenu, peu importe ce qui dépasse les limites de l'écran. Pour obtenir les cellules de texte plus larges que sur l'écran pour envelopper à plusieurs lignes, utilisez Android: rétrécitColumns Code> Attribut sur Tableau d'attente. P>

<TableLayout 
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:shrinkColumns="*" />
  • Android: rétrécitColumns = "*" code> rétrécit toutes les colonnes li>
  • Android: rétrécitColumns = "0" code> rétrécit la première colonne li>
  • Android: rétrécitColumns = "1,2" code> rétrécit les deuxième et troisième colonnes li> ul>

    Android: StretchColumns fait le contraire. Il étend une colonne à la largeur maximale disponible. P>

    "Tribunal" et "Stretch" Considérez toutes les lignes de la table pour calculer l'espace. P>

    Pour faire défiler une table-tablie: H3>

    Si votre nappayout code> est supérieur à l'écran, déplacez-le dans un ScrollView code>. p> h3>


0 commentaires