2016-04-25 3 views
1

В настоящее время я работаю в андроид-активности, где мне нужен динамический текстовый вид с прокруткой. Я постоянно добавляю новые строки в это представление, но когда я добавляю строки, к нему он будет идти только до 4 строк (номер, который я тоже установил), тогда он не будет прокручиваться. Это мой XML и соответствующий код Java:TextView не прокручивает

<TextView 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:maxLines="4" 
    android:scrollbars="vertical" 
    android:id="@+id/textView2" 
    android:layout_alignParentBottom="true" 
    android:layout_centerHorizontal="true" /> 

Java:

protected void onCreate(Bundle savedInstanceState) { 
    ... 
    RelativeLayout layout = (RelativeLayout) findViewById(R.id.content); 
    tv3 = (TextView) findViewById(R.id.textView2); 
    tv3.setMovementMethod(new ScrollingMovementMethod()); 
+0

Вы пытались поместить свой TextView в ScrollView? – Yev

ответ

0

я бы просто положить его внутрь Scrollview, а затем установить высоту Scrollview на android:height="wrap_content".

2

Он не будет прокручиваться, если вы не разместите его в режиме прокрутки. И если вы укажете maxLines, он не превысит этого. Поэтому вместо этого не указывайте максимальные строки и добавьте высоту в свой вид прокрутки.

<FrameLayout 
     android:layout_width="wrap_content" 
     android:layout_height="120dp"> //or whatever height 

    <ScrollView 
     android:layout_width="wrap_content" 
     android:layout_height="match_parent"> 

     <TextView 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:id="@+id/textView2" 
      android:layout_centerHorizontal="true" /> 

    </ScrollView> 

</FrameLayout> 
+0

Хорошо, я пробовал это, и я вижу, что полоса прокрутки появляется, как только текст становится достаточно длинным, но он по-прежнему не будет прокручиваться по экрану. – atg963

+0

Это кажется странным. См. Мое редактирование. сделайте снимок –

+0

И удалите эту строку из java 'tv3.setMovementMethod (новый ScrollingMovementMethod());' Я понятия не имею, что это делает, но его не нужно прокручивать –

1

Попробуйте этот.

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

     <LinearLayout 
      android:layout_width="fill_parent" 
      android:layout_height="fill_parent" 
      android:orientation="vertical" > 

      <TextView 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:maxLines="4" 
      android:scrollbars="vertical" 
      android:id="@+id/textView2" 
      android:layout_alignParentBottom="true" 
      android:layout_centerHorizontal="true" /> 

    </LinearLayout> 

    </ScrollView> 
Смежные вопросы