Android calcula la posición de scrollTo en HorizontalScrollView

Tengo HorizontalScrollView con pocos TextViews. Cada TextView puede contener texto de diferente longitud.

¿Cómo debo calcular el desplazamiento correcto para desplazarse usando "scrollTo (x, y)"?

Desplazamiento funciona, pero diferente de lo esperado. He intentado varias cosas (getLocationOnScreen (), getMeasuredWidth (), getWidth () en cada elemento hijo y añadirlos togetehr), pero todavía no puedo obtener el resultado que me gusta. La vista se desplaza un poco demasiado o no lo suficiente.

Solución

Cuando HSV tiene varios elementos con diferentes anchos puede centrarse en cada uno de ellos de esta manera:

for (TextView el : requiresFocus) { if (el.getText().equals(requiresFocus)) { offsetX = ((el.getLeft() + el.getRight()) / 2) - (myHSV.this.getWidth() / 2); scrollTo(offsetX, 0); break; } } 

Con ((el.getLeft() + el.getRight()) / 2) obtendrá el centro del elemento y con (myHSV.this.getWidth() / 2) obtendrá el centro de la pantalla.

Prueba esto:

 int x, y; x = myTextView.getLeft(); y = myTextView.getTop(); myHsv.scrollTo(x, y); 

getLeft() y getTop() deben devolver las coordenadas relativas a la vista principal (es decir, HorizontalScrollView en este caso.

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.