777 votes

Faire TextView Scrollable dans Android

<p>Je suis afficher du texte dans un textview qui semble être trop long pour tenir sur un seul écran. J’ai besoin de faire mon TextView scrollable. Comment puis-je faire ? Voici le code<pre><code></code></pre></p>

1729voto

Amit Chintawar Points 5885
<p>Vous n’avez pas besoin d’utiliser un <code></code> en fait.<p>Il suffit de régler la</p><pre><code></code></pre><p>Propriétés de votre <code></code> dans le fichier xml de votre mise en page.</p><p>Puis utilisez :</p><p><code></code></p><p>dans votre code.</p><p>Bingo, il défile automatiquement sans aucun problème.</p></p>

312voto

Someone Somewhere Points 8361

C'est la façon dont je l'ai fait uniquement en XML:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">

    <ScrollView
    android:id="@+id/SCROLLER_ID"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:scrollbars="vertical"
    android:fillViewport="true">

        <TextView
        android:id="@+id/TEXT_STATUS_ID"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_weight="1.0"/>

    </ScrollView>

</LinearLayout>

NOTES:

1) android:fillViewport="true" combiné avec android:layout_weight="1.0" fera le textview prendre tout l'espace disponible.

2) Lors de la définition de la Scrollview, NE PAS spécifier android:layout_height="fill_parent" sinon le scrollview ne fonctionne pas ! (Ce qui m'a fait perdre une heure tout à l'heure! FFS)

CONSEIL DU PRO:

par programmation faites défiler vers le bas après l'ajout de texte, utilisez ceci:

mTextStatus = (TextView) findViewById(R.id.TEXT_STATUS_ID);
mScrollView = (ScrollView) findViewById(R.id.SCROLLER_ID);

private void scrollToBottom()
{
    mScrollView.post(new Runnable()
    { 
        public void run()
        { 
            mScrollView.smoothScrollTo(0, mTextStatus.getBottom());
        } 
    });
}

120voto

EddieB Points 2646
<p>Tout ce qui est vraiment nécessaire est le setMovementMethod(). Heres un exmple utilisant un LinearLayout.<h1>main.Xml</h1><pre><code></code></pre><h1>WordExtractTest.java</h1><pre><code></code></pre></p>

47voto

matasoy Points 171
<p>Faire votre textview juste ajouter ceci<pre><code></code></pre></p>

27voto

Samuh Points 16564
<p>Suis tombé sur ceci par hasard : je pourrais être réveiller un zombie ici. Mais pour répondre à cette question, vous pouvez soit :<br>1. surround le <code></code> par un <code></code> ou<br>2. définir la méthode de mouvement<code></code></p>

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X