¿Hay alguna manera de hacer que el cajón se deslice de arriba hacia abajo?Android SlidingDrawer desde la parte superior?
Respuesta
La clase predeterminada SlidingDrawer
no permite esto. Puede utilizar la clase Panel
de aquí para conseguir algo muy similar aunque:
http://code.google.com/p/android-misc-widgets/
¿Obtuviste los paneles funcionando? Estoy teniendo un momento muy difícil para integrar ese Panel, que parece ser muy bueno. Mi problema está aquí, si alguien pudiera revisarlo http://code.google.com/p/android-misc-widgets/issues/detail?id=9 El error dice "Archivo Binario XML línea # 15: el atributo de contenido es obligatorio y debe referirse a un niño válido ". – OneWorld
Tuve que envolver el widget del panel en un diseño de marco para que funcione – OneWorld
El cuentagotas superior tenía un comportamiento no deseado: el contenido de abajo se movió a la parte inferior. Lo arreglé de esta manera:
que tenía que hacer lo mismo para uno de mis proyectos y terminé de escribir mi propio widget para esto. Lo llamé SlidingTray ahora es parte de mi biblioteca de código abierto Aniqroid.
http://aniqroid.sileria.com/doc/api/ (Busque descargas en la parte inferior o utilizar proyecto de Google Code para ver más opciones de descarga: http://code.google.com/p/aniqroid/downloads/list)
La documentación de la clase está aquí: http://aniqroid.sileria.com/doc/api/com/sileria/android/view/SlidingTray.html
Probé este, pero cuando lo implemento utilizando el ejemplo xml, obtengo una 'excepción de nullpointer' en' com.sileria.android.Resource.getIdentifier'. Me encantaría usar esto. – Peterdk
Vaya, parece que olvidé 'Kit.init()' ... ¡Funciona muy bien ahora! – Peterdk
Además, si copia/pega el ejemplo XML de la documentación, es 'com.sileria.android.view.SlidingTray' y no' com.sileria.android.SlidingTray' – Fr4nz
he encontrado una manera sencilla de hacer eso . Todo lo que tienes que hacer es establecer la rotación de 180º para el deslizador deslizante, el contenido y el mango. Es más fácil de entender con un ejemplo, así que mira lo que he hecho:
Primero, te mostraré mi viejo SlidingDrawer, de abajo hacia arriba.
<SlidingDrawer xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/slidingDrawer"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
android:gravity="center_horizontal"
android:handle="@+id/handle"
android:content="@+id/content">
<ImageView android:id="@+id/handle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/ic_launcher" />
<ImageView android:id="@+id/content"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="#FF0000"
android:src="@drawable/ic_launcher" />
</SlidingDrawer>
Ahora vistazo a los cambios que hice, el establecimiento de la rotación de 180º
<SlidingDrawer xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/slidingDrawer"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
android:gravity="center_horizontal"
android:handle="@+id/handle"
android:content="@+id/content"
android:rotation="180">
<LinearLayout android:id="@+id/handle"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<ImageView android:id="@+id/imageView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/ic_launcher"
android:rotation="180" />
</LinearLayout>
<ImageView android:id="@+id/content"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="#FF0000"
android:src="@drawable/ic_launcher"
android:rotation="180" />
</SlidingDrawer>
Tenga en cuenta que también creé un LinearLayout establecer como mango, y no cambió su rotación, pero he cambiado la rotación de su hijo. Esto fue para evitar un pequeño problema que tuve, pero todo está funcionando bien y es simple.
yo estaba muy insatisfecho con las soluciones proporcionadas aquí:
- La clase
Panel
de http://code.google.com/p/android-misc-widgets/ era muy poco intuitivo de usar y también tenía errores y problemas técnicos visuales (inutilizables para el uso productivo) y no hay documentos en absoluto SlidingTray
clase de http://aniqroid.sileria.com/doc/api/ se anida en una necesidad de depender demasiado de lib y para mí no conseguir que funcione en absoluto- usando
android:rotation="180"
requiere API de nivel 11, y mi objetivo es 10.
(sin ofender a los respectivos desarrolladores, tratando de ser objetivo en este caso)
Así que mi solución era extraer SlidingTray de este lib http://aniqroid.sileria.com/doc/api/ (por Ahmed Shakil) y refactorizado un poco ya que tenía algunas peculiaridades necesitaba ser usado dentro de la lib de Ahmed. SlidingTray
se basa en Androids propio SlidingDrawer
, así que supongo que es estable. Mi modificación consiste en 1 clase a la que llamé MultipleOrientationSlidingDrawer
y , tiene que agregar declare-styleables en su attrs.xml. Aparte de eso, tiene el mismo uso que SlidingDrawer con el atributo adicional de "orientación".
Hay que ver: MultipleOrientationSlidingDrawer (source & example) @ gist
Aquí es un ejemplo de uso (también proporcionado en el GIST)
<your.app.MultipleOrientationSlidingDrawer
xmlns:custom="http://schemas.android.com/apk/res-auto/your.app"
android:layout_width="match_parent"
android:layout_height="match_parent"
custom:handle="@+id/handle_c"
custom:content="@+id/content_c"
custom:orientation="top">
<RelativeLayout
android:id="@id/handle_c"
android:layout_width="match_parent"
android:layout_height="30dp"
android:background="#333333">
<TextView
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:text="Handle Text"
android:gravity="left|center_vertical"/>
</RelativeLayout>
<FrameLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@id/content_c"
android:background="#555555">
<ListView
android:id="@+id/listview_credits"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
</FrameLayout>
</your.app.MultipleOrientationSlidingDrawer>
Soporte Todos los créditos van a la respectiva prog. No probé esta solución exhaustivamente, funciona muy bien con TOP y BOTTOM establecidos en XML. No intenté usarlo programáticamente.
Es bueno, pero ¿has visto un problema con la animación? ¿Has encontrado una solución para el parpadeo de la vista mientras se mueve? – Vetalll
Tenía animaciones parpadeantes con http://code.google.com/p/android-misc-widgets/, pero no con este apporach (hasta ahora) – for3st
¿Es posible hacer que 'FrameLayout'' content_c' no ocupo todo el espacio disponible porque veo que lo empuja todo hacia abajo incluso si configuro 'android: layout_height =" wrap_content "' – Erik
- 1. Cajón deslizante desde la parte superior
- 2. Android: SlidingDrawer desaparece de SurfaceView
- 3. jQuery obtener la altura desde la parte superior
- 4. Determine la distancia desde la parte superior de un div a la parte superior de la ventana con javascript
- 5. JQuery ¿Desplazarse a Compensación desde la parte superior del navegador?
- 6. detectar distancia desplazada desde la parte superior jquery
- 7. Android - Disponibles con esquinas redondeadas en la parte superior solamente
- 8. modo Android Landscape cortando mis botones en la parte superior
- 9. Actividad iniciada desde la notificación abierta en la parte superior de la pila de actividades
- 10. UITextView margen extraño en la parte superior?
- 11. ScrollView no muestra la parte superior
- 12. Android: ¿se puede configurar la altura de SlidingDrawer con wrap_content?
- 13. Hacer FancyBox aparece en la parte superior
- 14. ¿Cómo desplazar QPlainTextEdit a la parte superior?
- 15. Alineación flotante CSS en la parte superior
- 16. window.location.hash = ""; evitar desplazarse hacia la parte superior?
- 17. Enfrente de "siempre en la parte superior"
- 18. LINQ Únete en la parte superior 1
- 19. desplazamiento QTextBrowser a la parte superior
- 20. SQL compacto seleccionar la parte superior 1
- 21. Java setFullScreenWindow() mantener en la parte superior
- 22. cómo hacer SlidingDrawer transparente
- 23. ¿Cómo alinear el texto a la parte superior de TextView?
- 24. ¿Qué es android: sharedUserLabel y qué valor agregado agrega en la parte superior de android: sharedUserID?
- 25. Mantener diálogos en la parte superior de la ventana, pero no en la parte superior de todo
- 26. ¿Cómo se puede completar un QGridLayout desde la parte superior izquierda a la derecha?
- 27. Cómo abrir colorbox desde dentro de un iframe en la parte superior de la ventana principal
- 28. superposición en la parte superior de Transmisión MPMoviePlayerController
- 29. El teclado de Android pone la barra de pestañas en la parte superior
- 30. reproduciendo video en la parte superior de la vista OpenGL en android
Puede consultar https://github.com/Ali-Rezaei/SlidingDrawer, lo que permite deslizarse desde cualquier lado. – Ali