2011-07-31 10 views
8

por defecto el borde de desvanecimiento de scrollview es visible solo si es posible desplazarse en esa dirección. ¿Cómo puedo hacer que sea visible en todo momento?Borde de desvanecimiento de ScrollView de Android

No quiero poner ningún elemento extraíble en la parte superior o algo así. Quiero lograrlo utilizando el borde de desvanecimiento incorporado, probablemente anulando algunas funciones de desplazamiento de vista.

Gracias de antemano

+1

¿Puedes decirme por qué querrías hacer eso? El efecto de desvanecimiento está diseñado con el propósito específico de informar al usuario que puede desplazarse en esa dirección. Si lo cambia para mostrar siempre el fading edge, el usuario pensaría que puede desplazarse en cualquier dirección y pensar que algo se rompe cuando no es posible. –

Respuesta

23

Sí, extender ScrollView y anular estos métodos (basado en Donut-release2):

@Override 
protected float getTopFadingEdgeStrength() { 
    if (getChildCount() == 0) { 
     return 0.0f; 
    } 
    return 1.0f; 
} 

@Override 
protected float getBottomFadingEdgeStrength() { 
    if (getChildCount() == 0) { 
     return 0.0f; 
    } 
    return 1.0f; 
} 

Por el bien de la comparación, este es el código original, lo que acorta el borde de descoloramiento como te acercas al final de la lista:

@Override 
protected float getTopFadingEdgeStrength() { 
    if (getChildCount() == 0) { 
     return 0.0f; 
    } 

    final int length = getVerticalFadingEdgeLength(); 
    if (mScrollY < length) { 
     return mScrollY/(float) length; 
    } 

    return 1.0f; 
} 

@Override 
protected float getBottomFadingEdgeStrength() { 
    if (getChildCount() == 0) { 
     return 0.0f; 
    } 

    final int length = getVerticalFadingEdgeLength(); 
    final int bottomEdge = getHeight() - mPaddingBottom; 
    final int span = getChildAt(0).getBottom() - mScrollY - bottomEdge; 
    if (span < length) { 
     return span/(float) length; 
    } 

    return 1.0f; 
} 
+1

No se olvide de votar y aceptar respuestas a sus preguntas, o al menos responder con un comentario. – cdhabecker

+1

Esto podría ser una respuesta a "Si desea ocultar por completo el borde de desvanecimiento". Gracias brillantes !!! Sin embargo, debería haber una manera más fácil de hacerlo que Android: P –

Cuestiones relacionadas