21

slidingDrawerポートレートモードのときにハンドラーが下部に配置されているアプリケーションでを使用しています。ユーザーが横向きモード(ワイドスクリーン)に切り替えたときに、ハンドラーを左側に配置したいと思います。向きを縦から横に変えると、ハンドラーが右側に配置されます。

レイアウトXMLを次のように定義しました。

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

左から右にスライドさせる方法を知っている人はいますか?

4

4 に答える 4

30

私はそれを行う簡単な方法を見つけました。あなたがしなければならないのは、slidingDrawer、コンテンツ、ハンドルの回転を180度に設定することだけです。ここで行ったように、同様に上から下がるSlidingDrawerを作成できます。

ここで私の例を最初に右から左に見て、違いを確認してください。

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

次に、左からスライドさせるように変更したものを見てください。

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

ハンドルとして設定するLinearLayoutも作成し、回転を変更しなかったが、子の回転を変更したことに注意してください。これは私が抱えていた小さな問題を防ぐためでしたが、すべてが正常に機能していて、簡単です。

于 2012-06-27T14:21:04.820 に答える
6

SlidingDrawerおそらくソースコードを入手して変更を加え、変更したバージョンを使用する以外に、できるとは思いません。同様にSlidingDrawer、上から下がるを作成することはできません。

于 2009-07-16T19:45:19.817 に答える
1

クラスをそれに書き直して、オープンソースライブラリの一部にしました。それを正しくするのにほぼ一週間かかりました。Android用のAniqroidオープンソースライブラリにある私のSlidingTrayをチェックしてください。

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

上記のリンクでSlidingTrayクラスのダウンロードリンクとドキュメントを見つけてください。

(開示:私はプロジェクトのメンテナーです。)

于 2011-08-28T16:47:49.920 に答える
0

この回答に投稿されたコードを使用できます:上からAndroid SlidingDrawer?

提供されているソリューションは、xmlでSlidingdrawerの方向を設定する機能も備えており、SDKのAndroids Slidingdrawerから派生しているため、attrs.xmlに1つのクラスといくつかの追加を追加するだけで、安定しています。また、インターネット/SOで見つかった他の人気のあるライブラリ/ソリューションを選択しなかった理由についても説明します。

要点へのクイックリンク:MultipleOrientationSlidingDrawer(ソースと例)@要点

于 2013-08-26T10:49:35.533 に答える