2011-01-14 10 views
7

Ok, bien, me disculpo por lo descuidado que es este código, pero todavía no puedo encontrar la manera de publicar correctamente una etiqueta de código aquí. Así que estoy haciendo una aplicación de Android (Java) y tengo un campo de texto desplazable. Si el usuario desplaza una fila larga hacia abajo y permanece al final cuando hace clic en la fila siguiente y si es corta, se desplazará hacia abajo sobre ese elemento también, aunque puede ser una fila de 1 línea (y no desplazable). Me preguntaba si hay alguna manera de llamar algo inmediatamente después de txtLvlInfo.setText para restablecer el valor de x-scroll en 0 o algo así que siempre se restablece a la parte superior del contenido, largo o corto. Gracias por ayudarme con esto y háganme saber si necesito aclarar más.reiniciar TextView scroll to top

TextView txtLvlInfo = (TextView) findViewById(R.id.txtLevelInfo); 
txtLvlInfo.setMovementMethod(new ScrollingMovementMethod()); 

switch (v.getId()){ 
    case R.id.row1: 
    txtLvlInfo.setText("1: My text view is only two lines max and so I set it to scroll, if the user clicks row2 to load that text while having me scrolled down they have to click and pull to drag back down to the top of text view 2 row."); 
    break; 
    case R.id.row2: 
    txtLvlInfo.setText("I only fill line 1 of the two."); 
    break; 
} 

_

<TextView  
    android:textColor="#052027" 
    android:text="" 
    android:id="@+id/txtLevelInfo" 
    android:scrollbars="vertical" 
    android:layout_alignParentLeft="true" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:layout_toRightOf="@+id/minimizeBtn" 
    android:layout_marginRight="38dip"> 
</TextView> 

Respuesta

20

Un consejo para poner el código en, simplemente pegar el código en la ventana, seleccionarlo y pulse Ctrl (Comando) + K. Esto sangrará todo 4 espacios, y coloreará y formateará su código.

Con respecto a su pregunta, ¿dónde se encuentra esta declaración de interruptor?

TextView tiene un método heredado de la vista que puede usar, llamado scrollTo(int, int), y acaba de establecer en 0, 0, pero estoy un poco confundido sobre lo que está haciendo exactamente. ¿Cuáles son los diseños principales de estos TextViews? Podrías envolver el primer TextView en ScrollView, en lugar de setMovementMethod() (con el que personalmente no estoy familiarizado).

+0

muchas gracias por la ayuda, con el formato de código y el código :) El nombre de mi aplicación es Farmville Helper (gratuito) que puede ver lo que me ayudó cuando lo actualizo esta semana :) Será una opción de menú llamada tabla de niveles para vincularlo a la actividad. – KisnardOnline

+0

¡De nada! Si esta respuesta lo ayudó a resolver el problema, márquelo como aceptado haciendo clic en la marca de verificación a la izquierda. – kcoppock

+0

hecho y hecho, ¡muchas gracias! – KisnardOnline

1

Usted puede poner su TextView en un ScrollView en su diseño XML y luego restablecer desplazarse hasta la primera posición por el siguiente código:

if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.HONEYCOMB) ((ScrollView) findViewById(R.id.myscrollView)).smoothScrollTo(0, 0);