lo tanto, mi solución es:
- Intercepción caso onTouch y calcular si la página debe cambiar a la siguiente o seguir la corriente
- Heredar del HorizontalScrollView y reemplazar el método computeScroll
El método compute Desplaza la llamada para mover la lista. De manera predeterminada, supongo que está implementado para desacelerar con una determinada relación ... Como no quiero este movimiento, simplemente lo anulo sin especificar un cuerpo.
El código del controlador de eventos es:
_scrollView.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
if(event.getAction() == MotionEvent.ACTION_UP)
{
float currentPosition = _scrollView.getScrollX();
float pagesCount = _horizontalBar.getChildCount();
float pageLengthInPx = _horizontalBar.getMeasuredWidth()/pagesCount;
float currentPage = currentPosition/pageLengthInPx;
Boolean isBehindHalfScreen = currentPage-(int)currentPage > 0.5;
float edgePosition = 0;
if(isBehindHalfScreen)
{
edgePosition = (int)(currentPage+1)*pageLengthInPx;
}
else
{
edgePosition = (int)currentPage*pageLengthInPx;
}
_scrollView.scrollTo((int)edgePosition, 0);
}
return false;
}
});
Y en mi HorizontalScrollView heredada
@Override
public void computeScroll (){
return;
}
Comprobar este tutorial, funciona y es muy simple para una paginación horizontal: [http://mobile.tutsplus.com/tutorials/android/android-user-interface-design- horizontal-view-paging /] (http://mobile.tutsplus.com/tutorials/android/android-user-interface-design-horizontal-view-paging/) – pedrotorres