android layout android-widget slidingdrawer

android - ¿Cómo hacer deslizar deslizante deslizante desde la izquierda?



layout android-widget (4)

Estoy usando un slidingDrawer en mi aplicación que tiene su controlador colocado en la parte inferior cuando está en modo retrato. Cuando el usuario cambia al modo horizontal (pantalla ancha), me gustaría que el controlador se encuentre a la izquierda. Cuando cambio la orientación de vertical a horizontal, el controlador se coloca a la derecha.

Definí mi diseño XML así:

<SlidingDrawer android:id="@+id/l_drawer" android:layout_width="fill_parent" android:layout_height="fill_parent" android:handle="@+id/l_handle" android:content="@+id/l_content" android:orientation="horizontal" android:layout_gravity="left" >

¿Alguien tiene una idea de cómo hacer que se deslice de izquierda a derecha?


He encontrado una manera simple 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. De forma similar puede hacer un SlidingDrawer que desciende desde la parte superior, como lo hice here .

Mire mis ejemplos aquí, primero de derecha a izquierda, para poder ver las diferencias.

<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="horizontal" 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 mira lo que cambié para hacerlo deslizar desde la izquierda.

<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="horizontal" 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 para establecer como handle, y no cambié su rotación, pero cambié la rotación de su hijo. Esto fue para evitar un pequeño problema que tuve, pero todo está funcionando bien y es simple.


He reescrito una clase para eso y la hice parte de mi biblioteca de código abierto. Me llevó casi una semana hacerlo bien. Por favor revisa mi SlidingTray en la biblioteca de código abierto Aniqroid para Android.

http://aniqroid.sileria.com/doc/api

Encuentre el enlace de descarga y la documentación para la clase SlidingTray en el enlace de arriba.

(Divulgación: soy el mantenedor del proyecto).


No creo que puedas, excepto tal vez al tomar el código fuente de SlidingDrawer , hacer cambios en él y usar tu versión modificada. De manera similar, no puedes hacer un SlidingDrawer que desciende desde la parte superior.


Puede usar el código publicado en esta respuesta: Android SlidingDrawer de la parte superior?

La solución provista incluye la configuración de la orientación de Slidingdrawer en xml, además es simple y solo requiere 1 clase y algunas adiciones en attrs.xml y es estable, ya que se deriva de Androids Slidingdrawer de SDK. También discuto por qué no elegí otras libs / soluciones populares que se encuentran en Internet / SO.

Enlace rápido a la esencia: MultipleOrientationSlidingDrawer (fuente y ejemplo) @ gist