如何让Android SlidingDrawer从左侧滑出?

Vid*_*nes 20 layout android android-widget slidingdrawer

slidingDrawer在我的应用程序中使用a ,在纵向模式下将其处理程序放在底部.当用户切换到横向模式(宽屏)时,我希望处理程序位于左侧.当我将方向从垂直方向更改为水平方向时,处理程序位于右侧.

我已经像这样定义了我的布局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"
    >
Run Code Online (Sandbox Code Playgroud)

任何人都知道如何让它从左向右滑动?

Lea*_*oid 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>
Run Code Online (Sandbox Code Playgroud)

现在看看我改变了什么让它从左边滑出来.

<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>
Run Code Online (Sandbox Code Playgroud)

请注意,我还创建了一个LinearLayout来设置为句柄,并没有改变它的旋转,但我更改了它的子项的旋转.这是为了防止我遇到的一个小问题,但一切都很好,而且很简单.

  • 请注意,旋转是api level 11+(Honecomb) (4认同)

Com*_*are 6

除了可能通过抓取SlidingDrawer源代码,对其进行更改以及使用修改后的版本之外,我认为您无法做到.你同样不能SlidingDrawer从顶部下降.