2012-07-05 14 views
10

Implementé la navegación deslizable usando this. current implementationAgregar sombra paralela para deslizar la navegación

El contenido debe colocarse cerca del borde derecho de la lista del menú; como expected result

Estoy tratando de agregar sombra agregando una vista al contenido del borde izquierdo, pero no aparecerá.

Cualquier pista sobre cómo hacer esto será apreciada.

+0

Esta pregunta ha perdido su importancia ahora. Intentaba hacerlo cuando Facebook era la única aplicación que usaba este tipo de navegación. No hubo bibliotecas para hacer la misma interfaz de usuario. Había pocos conceptos y un código medio cocido. Casi 8-9 meses después, las bibliotecas comenzaron a aparecer con todo tipo de personalización y luego también comenzó a llegar la respuesta. No estoy seguro de si podría haber aceptado una de las respuestas, ni siquiera estoy seguro ahora. Estos son demasiado específicos para alguna biblioteca o enfoque y aún más cerca del concepto que estaba tratando. – gandharva

Respuesta

1

Sé que esta publicación es bastante antigua, pero tuve problemas para encontrar una solución, así que pensé que podría ayudar a alguien si publicara la mía aquí.

Quería agregar un fundido a negro en el lado derecho de este simple ListView.

<ListView 
    android:id="@+id/sideMenuList" 
    android:layout_width="300dp" 
    android:layout_height="match_parent"/> 

Creó un archivo PNG con un degradado using GIMP. Añádelo a/res/dibujable. El mío se llamaba fade_from_right.png

Rodeó el ListView con un RelativeLayout. Dale a RelativeLayout el color de fondo que deseas que tenga tu ListView.

Agregue otra vista a la derecha de su ListView. Establezca el nuevo fondo de vistas para que sea su 'fade_from_right.png'

Eso es todo.

<RelativeLayout 
    android:layout_height="match_parent" 
    android:layout_width="300dp" 
    android:background="@color/solarized_base02"> 

    <ListView 
     android:id="@+id/sideMenuList" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent"/> 

    <View 
     android:layout_alignRight="@id/sideMenuList" 
     android:layout_width="5dp" 
     android:layout_height="match_parent" 
     android:background="@drawable/fade_from_right"/> 

</RelativeLayout> 
+0

Esto es realmente muy viejo. @brett hizo que la solución anterior funcionó para usted. Ahora uso https://github.com/jfeinstein10/SlidingMenu – gandharva

+0

Miré el uso de SlidingMenu pero, siendo nuevo en Android, quiero que todo sea lo más simple posible, así que estoy usando el muy simple https: // github.com/dmitry-zaitsev/AndroidSideMenu. Dicho esto, mi solución no es específica de AndroidSideMenu, por lo que se puede utilizar para aplicar una sombra a cualquier tipo de vista. –

0

¿Cuál es la necesidad de agregar otra vista con la lista de la lista, no será perfecto, creo ... Usted puede intentar así, ¿verdad?

sm = getSlidingMenu(); 
sm.setShadowDrawable(R.drawable.shadowbar); 

ya que podemos establecer algunos detrás de ancho y desplazamiento de la vista. esta opción le dará un buen aspecto, creo.

+0

Gracias @Tamilselvan, pero esto fue publicado antes de la era de SlidingMenu de jfeinstein (al menos antes de que lo descubriera). – gandharva

11

Chicos Sé que llego tarde a la fiesta pero me costó encontrar una respuesta a este problema que me resultó satisfactoria, así que solo quería compartir mi solución. Puño, crea un navbar_shadow.xml dibujable y ponlo con el resto de tus objetos descartables. Todo lo que es, es un rectángulo con un degradado transparente.

<?xml version="1.0" encoding="utf-8"?> 

<shape xmlns:android="http://schemas.android.com/apk/res/android" 
    android:shape="rectangle"> 
    <gradient android:startColor="#111" 
     android:endColor="#00000000"> 
    </gradient> 
    <size 
     android:height="@dimen/activity_vertical_margin" 
     android:width="5dp"> 
    </size> 
</shape> 

Entonces, esté donde esté crear instancias de su cajón, utilice la variable de DrawerLayout para adjuntarlo a su cajón.

mDrawerLayout.setDrawerShadow(R.drawable.navbar_shadow, Gravity.LEFT); 

Bam. No es necesario dibujar línea por línea o incluir recursos adicionales. Puede usar su propio StartColor para que coincida con el color de su cajón, pero endColor debe permanecer # 00000000 ya que es negro transparente.

+0

¡Perfecto! Y al cambiar 'startColor',' endColor' también funciona para el menú de diapositivas derecho. – madlymad

+0

buena solución, pero desafortunadamente parezco tener un espacio entre la sombra y el cajón cuando está completamente abierto – jiduvah

+0

Asegúrese de que el extremo más oscuro del degradado dibujable esté ubicado hacia el lado del cajón; esta solución se hizo para un cajón lateral de elevación. SI está trabajando con un cajón derecho, es posible que necesite revelar los colores stard/end. – C0D3LIC1OU5

Cuestiones relacionadas