Pregunta

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

he definido mi diseño XML siguiente:

<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?

¿Fue útil?

Solución

No creo que pueda, con excepción quizás de por agarrar el código fuente SlidingDrawer, hacer cambios en él y utilizar su versión modificada. Usted mismo modo que no puede hacer una SlidingDrawer que desciende desde la parte superior.

Otros consejos

He encontrado una manera sencilla de hacer eso. Todo lo que tiene que hacer es establecer la rotación de 180º para la slidingDrawer, el contenido y el mango. Del mismo modo se puede hacer una SlidingDrawer que desciende desde la parte superior, como lo hice aquí .

Mira 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 he cambiado para que sea deslizante a cabo 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 establecer como mango, y no cambió su rotación, pero he cambiado la rotación de su hijo. Esto fue para evitar que un pequeño problema que tuve, pero todo está funcionando bien y es muy sencillo.

he vuelto a escribir una clase para eso y hecho parte de mi biblioteca de código abierto. Me tomó casi una semana para hacerlo bien. Por favor, echa un vistazo a mi SlidingTray en Aniqroid biblioteca de código abierto para Android.

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

Para el enlace de descarga y la documentación para la clase SlidingTray en el enlace anterior.

(Revelación:. Yo soy el mantenedor del proyecto)

Puede utilizar el código publicado en esta respuesta: Android SlidingDrawer de arriba

La solución proporcionada dispone de ajuste de la orientación de la Slidingdrawer en XML también es simple que requiere sólo 1 clase y algunas adiciones en attrs.xml y estable, ya que está derivado de Androids Slidingdrawer de SDK. También discuto por qué no elegir otras librerías / soluciones populares que se encuentran en el Internet / SO.

Quicklink a la esencia: MultipleOrientationSlidingDrawer (fuente y ejemplo) @ GIST

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top