2009-07-16 90 views
20

我在我的應用程序中使用slidingDrawer,它在縱向模式下將其處理程序放置在底部。當用戶切換到橫向模式(寬屏幕)時,我想讓處理程序位於左側。當我將方向從垂直改爲水平時,處理程序位於右側。如何讓Android 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" 
    > 

任何人都有如何使它滑動從左至右的想法?

+0

其實我發現一些代碼,實現了類似的東西。博客和屏幕截圖: http://androidblogger.blogspot.com/2009/01/sliding-drawer-again.html論壇討論: http://www.anddev.org/viewtopic.php?p=16622 Checkout code from SVN: http://code.google。com/p/android-misc-widgets/ – 2009-07-17 12:19:52

+0

我也想實現HORIZONTAL滑塊,我已經檢查過SVN的鏈接,但沒有任何項目/代碼可用 – 2010-09-25 07:32:48

+0

單擊頁面頂部的「源代碼」選項卡然後點擊'Browse'選項來顯示源代碼。 – 2011-12-27 15:27:49

回答

6

我不認爲你可以,除了可能抓住SlidingDrawer源代碼,對其進行更改並使用修改後的版本。您同樣不能製作從頂部下降的SlidingDrawer

+0

經過多次搜索後,我仍然沒有找到任何示例或方法來做到這一點,所以是的,我同意,有沒有辦法做到這一點與android sdk ... – 2009-07-17 06:55:14

1

我重寫了一個類,並將其作爲我的開源庫的一部分。我花了差不多一個星期才弄清楚了。請查看我的SlidingTray in Aniqroid Android的開源庫。

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

查找上面的鏈接SlidingTray類的下載鏈接和文檔。

(披露:我是這個項目的維護者)

29

我已經找到了一種簡單的方法來做到這一點。您所要做的就是爲slidingDrawer,內容和句柄設置180º的旋轉角度。 您可以同樣製作一個從頂部下降的SlidingDrawer,就像我做過的here一樣。

看看我的例子在這裏,首先從右到左,能夠看到差異。

<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設置爲手柄,並沒有改變它的旋轉,但我改變了它的旋轉的孩子。這是爲了防止我有一個小問題,但一切工作正常,很簡單。