Android scrollview autoscrolling при добавлении текста

У меня есть scrollview, содержащий текстовое изображение в приложении для Android. Этот текст будет содержать текст, прилагаемый к нему непрерывно с установленными интервалами. Прокрутка работает, и текст добавляет просто отлично, но то, что я хотел бы сделать, это иметь scrollview autoscroll вниз по мере добавления текста. Когда новый текст добавляется внизу, он автоматически прокручивается вниз, чтобы соответствовать, и старый текст выталкивается из поля зрения вверху. Что еще лучше, так это добавить текст в нижнюю часть прокрутки и заставить его подталкивать старый текст вверх, но одно за раз.

    <ScrollView android:layout_width="fill_parent" android:layout_height="wrap_content" android:fillViewport="true" > <TextView android:id="@+id/statusText" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_gravity="bottom" /> </ScrollView> 

    Я пробовал решение с помощью силы тяжести, но при прокрутке вниз, при фактическом тексте результата было пустое пространство.

    Так что это другой способ. Вы можете разместить свой TextView внутри ScrollView:

     <ScrollView android:id="@+id/scrollView1" android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="1" android:fillViewport="true" > <TextView android:id="@+id/textView1" android:layout_width="match_parent" android:layout_height="wrap_content" /> </ScrollView> 

    И определите addTextChangedListener

     public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { //some code here ScrollView scrollView1 = (ScrollView) findViewById(R.id.scrollView1); TextView textView1 = (TextView) findViewById(R.id.textView1); textView1.addTextChangedListener(new TextWatcher() { @Override public void afterTextChanged(Editable arg0) { scrollView1.fullScroll(ScrollView.FOCUS_DOWN); // you can add a toast or whatever you want here } @Override public void beforeTextChanged(CharSequence arg0, int arg1, int arg2, int arg3) { //override stub } @Override public void onTextChanged(CharSequence arg0, int arg1, int arg2, int arg3) { //override stub } }) } 

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

    Вы можете просто прокрутить весь ScrollView до нижней части при добавлении текста.

     textView.append(text); scroll.fullScroll(View.FOCUS_DOWN) 
     textView.append(text); scroll.fullScroll(View.FOCUS_DOWN) 

    Это даст проблему, она не будет прокручиваться до крайности сверху, из-за android:layout_gravity="bottom"