Android - Making Sliding Drawer to slide from Left-to-Right

冷暖自知 提交于 2019-11-26 08:24:25

问题


I have implemented \"Sliding Drawer\" in my application using the below XML layout: (I got this example from 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>

but what I am wanting is to Slide the drawer from Left-to-right(Horizontal) instead of this right-to-left, how do i make slide drawer to slide from left-to-right direction?

Please share your idea/view/opinion/issue with me and catch me out of this problem.


回答1:


Here is a tutorial on this: link

It seems that there is no positioning for sliding drawer, I can not find any layout attributes provided by the sdk. But like in the tutorial above you could write your own sliding drawer widget and apply layout attributes to position the slider/panel.


You can checkout https://github.com/umano/AndroidSlidingUpPanel




回答2:


You can use this for left to right drawer ..

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



回答3:


The best and easy solution is adding one line of code to SlidingDrawer, android:rotation = "180" for more info please refer to this link.




回答4:


The best answer is to use this component that sephiroth wrote based upon the original SlidingDrawer: http://blog.sephiroth.it/2011/03/29/widget-slidingdrawer-top-to-bottom/




回答5:


I used Girish R's answer and just rotated it.... Works like a charm Also, I used a frame layout to ensure it open properly....

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



来源:https://stackoverflow.com/questions/3793194/android-making-sliding-drawer-to-slide-from-left-to-right

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!