Android TextView должен автоматически прокручиваться автоматически

Мне нужен TextView, который автоматически прокручивается по вертикали. Это мой код макета:

activity_info.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <ImageView android:id="@+id/iView" android:layout_width="100dp" android:layout_height="100dp" android:layout_centerHorizontal="true" android:contentDescription="@string/info" android:src="@mipmap/infoImage" /> <TextView android:id="@+id/tView" android:layout_below="@+id/iView" android:layout_width="match_parent" android:layout_height="300dp" android:layout_centerHorizontal="true" android:maxLines="500" android:scrollbars="vertical" /> <RelativeLayout android:layout_below="@+id/tView" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:gravity="center"> <Button android:id="@+id/buttonYes" android:layout_width="100dp" android:layout_height="50dp" android:text="YES" /> <Button android:id="@+id/buttonNo" android:layout_toEndOf="@id/buttonYes" android:layout_width="100dp" android:layout_height="50dp" android:text="NO" /> </RelativeLayout> </RelativeLayout> 

Я прочитал, что мне нужно ввести эту строку:

 tView.setMovementMethod(new ScrollingMovementMethod()) 

В мой метод onCreate в моей деятельности:

InfoActivity.java

 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_info); TextView tView = (TextView) findViewById(R.id.tView); tView.setMovementMethod(new ScrollingMovementMethod()); } 

Если я это сделаю, TextView не будет прокручиваться автоматически, если в представление вставлен новый ввод (текст). Я знаю, что есть другие вопросы, касающиеся проблемы. Но я пробовал большинство из них.

Как я могу решить эту проблему?

Попробуйте установить textView в android:gravity="bottom" и используйте textView.append("\n"+"New Input Text."); Для нового входного текста;

Вы почти там. Просто добавьте еще несколько вещей, чтобы достичь этого,

Прежде всего добавьте эти свойства в свой TextView

 android:maxLines = "AN_INTEGER" android:scrollbars = "vertical" android:gravity="bottom" 

Во-вторых, как обычно,

 tView.setMovementMethod(new ScrollingMovementMethod()); 

Это должно решить вашу проблему.

Я бы предложил обернуть TextView в ScrollView

 <ScrollView android:id="@+id/sView" android:layout_below="@+id/iView" android:layout_width="match_parent" android:layout_height="300dp" android:layout_centerHorizontal="true" > <TextView android:id="@+id/tView" android:layout_width="match_parent" android:layout_height="match_parent" android:maxLines="500" android:scrollbars="vertical" android:gravity="bottom" /> </ScrollView> 

Вы можете добавить новый текст, выполнив

 public void appendAndScrollDown(String someText) { tView.append("\n" + someText); sView.fullScroll(View.FOCUS_DOWN); }