2016-04-18 9 views
0

Ich versuche, eine TextView zu implementieren, um vertikal in einem CardView zu scrollen, wenn der Text zu groß ist, um zu passen.Scrollbare TextView in einem CardView

Leider funktioniert dieser Code nicht wie vorgesehen. Kannst du mir bitte helfen?

<LinearLayout 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:orientation="vertical" 
     android:padding="5dp"> 

     <ImageView 
      android:id="@+id/imageViewBookImage" 
      android:layout_width="80dp" 
      android:layout_height="120dp" /> 

     <TextView 
      android:id="@+id/textViewBookName_EN" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:text="BookName_EN" /> 


      <ScrollView 
       android:id="@+id/textAreaScroller" 
       android:layout_width="fill_parent" 
       android:layout_height="173px" 
       android:layout_x="0px" 
       android:layout_y="25px" 
       android:scrollbars="vertical"> 

       <TextView 
        android:id="@+id/textViewBookDescription" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:lines="7" 
        android:text="Book Description" /> 
      </ScrollView> 

    </LinearLayout> 

</android.support.v7.widget.CardView> 
+1

Ein Textview wird von selbst scrollbaren werden, wenn sein Inhalt über seine Grenzen hinausgeht. Haben Sie versucht, einfach den TextView ohne ScrollView zu verwenden? – NoChinDeluxe

+0

Hallo NoChinDeluxe. Danke für deine Antwort. Ja ich habe und der Text, wenn zu lange, wird leider nicht im CardView angezeigt. –

+0

Ich denke, das liegt daran, dass Sie das "Linien" -Attribut in Ihrem TextView auf "7" setzen. Versuchen Sie, diese Zeile zu entfernen und "match_parent" für Ihre TextView 'layout_height 'zu setzen. – NoChinDeluxe

Antwort

0

In Ihrem Activity fügen Sie folgende Zeile zu TextView:

TextView tv; 
... 

tv = (TextView) findViewById(R.id.textViewBookDescription); 
tv .setMovementMethod(new ScrollingMovementMethod());