Question

J'utilise un slidingDrawer dans mon application qui a son gestionnaire placé en bas en mode portrait. Lorsque l'utilisateur passe en mode paysage (écran large) Je voudrais que le gestionnaire situé sur la gauche. Lorsque je change l'orientation de la verticale à l'horizontale, le gestionnaire est placé sur la droite.

J'ai défini mon XML de mise en page comme ceci:

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

Quelqu'un a une idée sur la façon de le faire glisser de gauche à droite?

Était-ce utile?

La solution

Je ne pense pas que vous pouvez, autre que peut-être en saisissant le code source de SlidingDrawer, y faire des changements, et en utilisant votre version modifiée. Vous pouvez pas non plus faire une SlidingDrawer qui descend du haut.

Autres conseils

Je l'ai trouvé un moyen simple de le faire. Tout ce que vous devez faire est de définir la rotation de 180 ° pour le slidingDrawer, le contenu et la poignée. Vous pouvez faire de même un SlidingDrawer qui descend du haut, comme je l'ai fait .

Regardez mes exemples ici, d'abord de droite à gauche, pour être en mesure de voir les différences.

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

Maintenant, regardez ce que je l'ai changé pour le faire glisser hors de la gauche.

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

Notez que j'ai aussi créé un LinearLayout définir comme poignée, et ne pas changer sa rotation, mais je l'ai changé la rotation de celui-ci est enfant. C'était d'empêcher un petit problème que j'avais, mais tout fonctionne bien et il est simple.

Je l'ai réécrit une classe à cela et fait partie de ma bibliothèque open source. Il m'a fallu presque une semaine pour y arriver. S'il vous plaît consulter mon SlidingTray Aniqroid bibliothèque open source pour Android.

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

Trouvez le lien de téléchargement et la documentation pour la classe SlidingTray dans le lien ci-dessus.

(Divulgation:. Je suis le responsable du projet)

Vous pouvez utiliser le code affiché dans cette réponse: Android SlidingDrawer du haut

La solution proposée comprend la mise en l'orientation du Slidingdrawer en xml aussi est simple ne nécessitant que 1 classe et quelques ajouts dans attrs.xml et stable car il est dérivé de Androids Slidingdrawer du SDK. Je discute aussi pourquoi je ne l'ai pas choisi d'autres libs populaires / solutions trouvées sur Internet / SO.

Quicklink à l'essentiel: MultipleOrientationSlidingDrawer (source & exemple) @ essentiel

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top