Android - 使滑动抽屉从左向右滑动

时间:2010-09-25 09:16:57

标签: android android-widget android-sliding

我使用以下XML布局在我的应用程序中实现了“Sliding Drawer”: (我从androidpeople.com得到了这个例子)

<LinearLayout android:id="@+id/LinearLayout01"
 android:layout_width="fill_parent" android:layout_height="fill_parent"
 xmlns:android="http://schemas.android.com/apk/res/android"
 android:background="@drawable/androidpeople">

 <SlidingDrawer 
  android:layout_width="wrap_content" 
  android:id="@+id/SlidingDrawer" 
  android:handle="@+id/slideHandleButton" 
  android:content="@+id/contentLayout" 
  android:layout_height="75dip"
  android:orientation="horizontal">

  <Button 
   android:layout_width="wrap_content" 
   android:layout_height="wrap_content" 
   android:id="@+id/slideHandleButton" 
   android:background="@drawable/closearrow">
  </Button>

  <LinearLayout 
   android:layout_width="wrap_content" 
   android:id="@+id/contentLayout" 
   android:orientation="horizontal" 
   android:gravity="center|top" 
   android:padding="10dip" 
   android:background="#C0C0C0" 
   android:layout_height="wrap_content">


   <Button android:id="@+id/Button01" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Content"></Button>
   <Button android:id="@+id/Button02" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Content"></Button>
   <Button android:id="@+id/Button03" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Content"></Button>

  </LinearLayout>

 </SlidingDrawer>
</LinearLayout>

但我想要的是将抽屉从左向右(水平)而不是从右向左滑动,如何使滑动抽屉从左向右滑动?

请与我分享您的想法/观点/意见/问题,让我摆脱这个问题。

5 个答案:

答案 0 :(得分:6)

以下是有关此问题的教程:link

似乎滑动抽屉没有定位,我找不到sdk提供的任何布局属性。但是,与上面的教程一样,您可以编写自己的滑动抽屉小部件并应用布局属性来定位滑块/面板。


您可以结帐https://github.com/umano/AndroidSlidingUpPanel

答案 1 :(得分:5)

您可以将此用于从左到右的抽屉..

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"

android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<TextView 
android:layout_width="50dip"
android:layout_height="50dip"
android:text="@string/hello"
/>
<SlidingDrawer
 android:id="@+id/drawer"
 android:layout_width="fill_parent"
 android:layout_height="wrap_content"
 android:orientation="horizontal"
 android:handle="@+id/handle"     
 android:content="@+id/content">


<ImageView
 android:id="@id/handle"
 android:layout_width="50dip"
 android:layout_height="50dip"  
 android:src="@drawable/icon"
/>

<LinearLayout
 android:id="@id/content"
 android:layout_width="fill_parent"
 android:layout_height="fill_parent"
 android:orientation="vertical">
<Button
 android:layout_width="fill_parent"
 android:layout_height="fill_parent"
 android:text="Big Big Button"/>
</LinearLayout>

</SlidingDrawer>
</LinearLayout>

答案 2 :(得分:4)

最简单的解决方案是向SlidingDrawer android:rotation = "180"添加一行代码以获取更多信息,请参阅this link

答案 3 :(得分:3)

最好的答案是使用sephiroth根据原始SlidingDrawer编写的这个组件: http://blog.sephiroth.it/2011/03/29/widget-slidingdrawer-top-to-bottom/

答案 4 :(得分:1)

我使用了Girish R的答案并且只是旋转它......就像一个魅力 另外,我使用了框架布局来确保它正常打开....

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="horizontal"

    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
    <SlidingDrawer
        android:id="@+id/drawer"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:handle="@+id/handle"
        android:rotation="180"
        android:content="@+id/content">


        <ImageView
            android:id="@id/handle"
            android:layout_width="50dip"
            android:layout_height="50dip"
            android:src="@drawable/ic_launcher"
            android:rotation="180"
            />

        <LinearLayout
            android:id="@id/content"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:orientation="vertical"
            android:rotation="180">
            <Button
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                android:text="Big Big Button"/>
        </LinearLayout>
    </SlidingDrawer>
    <TextView
        android:layout_width="50dip"
        android:layout_height="50dip"
        android:text="HELLO WORLD"
        />

</FrameLayout>

SlidingDrawer from left to right