android textview scrollview autoscroll

Android scrollview se desplaza automáticamente cuando se agrega texto



textview autoscroll (4)

He intentado la solución con la gravedad, pero el resultado fue una gran cantidad de espacio vacío debajo del texto real cuando se desplaza hacia abajo.

Así que esa es otra manera. Puedes colocar tu TextView dentro de 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>

Y definir 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 } }) }

De hecho, me di cuenta en este momento que la aplicación se desplazará cada vez que se modifique el texto, no solo se agregará. Sin embargo, funciona bien para mí.

Tengo una vista de desplazamiento que contiene una vista de texto en una aplicación de Android. A esta vista de texto se le agregará texto continuamente a intervalos establecidos. El desplazamiento funciona y el texto se agrega muy bien, pero lo que me gustaría hacer es que el desplazamiento de desplazamiento se desplace hacia abajo cuando se agrega texto. A medida que se agrega texto nuevo en la parte inferior, se desplaza automáticamente hacia abajo para coincidir y el texto antiguo se oculta en la parte superior. Lo que sería aún mejor es agregar texto a la parte inferior de la vista de desplazamiento y hacer que empuje el texto más antiguo hacia arriba, pero una cosa a la vez.


Puede simplemente desplazar el ScrollView completo a la parte inferior cuando se agrega texto.

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


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

esto dará problema, no se desplazará hasta la parte superior extrema, debido a android:layout_gravity="bottom"


<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>