Pergunta

Eu estou usando um slidingDrawer no meu aplicativo que tem seu manipulador colocado na parte inferior quando em modo retrato. Quando o usuário alterna para o modo paisagem (widescreen) Eu gostaria de ter o manipulador localizado na esquerda. Quando eu mudar a orientação da vertical para a horizontal, o manipulador é colocado à direita.

Eu tenho definido meu XML esquema como este:

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

Alguém tem uma idéia de como fazê-lo deslizar da esquerda para a direita?

Foi útil?

Solução

Eu não acho que você pode, à excepção talvez, agarrando o código fonte SlidingDrawer, fazer alterações a ele, e usando a sua versão modificada. Você também não pode fazer uma SlidingDrawer que desce do topo.

Outras dicas

Eu encontrei uma maneira simples de fazer isso. Tudo que você tem a fazer é definir a rotação de 180º para o slidingDrawer, o conteúdo e a alça. Você pode fazer um semelhante SlidingDrawer que desce do topo, como eu fiz aqui .

Olhe para meus exemplos aqui, primeiro da direita para a esquerda, para ser capaz de ver as diferenças.

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

Agora, olhe o que eu alterado para torná-lo deslizar para fora da esquerda.

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

Note que eu também criou uma LinearLayout para definir como alça, e não mudá-lo de rotação, mas eu mudei a rotação dele de criança. Este foi para evitar um pequeno problema que tive, mas tudo está funcionando bem e é simples.

Eu tenho reescrito uma classe para isso e fez parte da minha biblioteca de código aberto. Levei quase uma semana para obtê-lo direito. Por favor, confira a minha SlidingTray na Aniqroid biblioteca de código aberto para o Android.

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

Encontre o link de download e a documentação para a classe SlidingTray no link acima.

(Divulgação:. Eu sou o mantenedor do projeto)

Você pode usar o código postou neste resposta: Android SlidingDrawer de cima

A solução fornecida apresenta a definição da orientação do Slidingdrawer em XML também é simples, requerendo apenas uma classe e algumas adições em attrs.xml e estável, uma vez que é derivado de Androids Slidingdrawer de SDK. Eu também discutir por que eu não escolhi outros libs / soluções populares encontrados na internet / SO.

Quicklink à essência: MultipleOrientationSlidingDrawer (fonte & exemplo) @ essência

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top