如何使一个Android SlidingDrawer从左侧滑出?(How to make an An

2019-06-14 16:31发布

我使用的是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"
    >

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

Answer 1:

我不认为你可以,也许比其他通过抓住SlidingDrawer源代码,更改它,并使用您的修改后的版本。 你同样不能使一个SlidingDrawer从顶部下降。



Answer 2:

我发现一个简单的方法来做到这一点。 所有你需要做的是设置的180度旋转的slidingDrawer,内容和手柄。 您同样可以使从顶部下降的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设置为手柄,并没有改变它的旋转,但我改变了旋转它的孩子。 这是为了防止小问题我有,但一切工作正常,它就是简单。



Answer 3:

我重写了一个类到并使其我的开源库的一部分。 这一个星期我花了几乎得到它的权利。 请看看我在Aniqroid开源库为Android SlidingTray。

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

查找上面的链接SlidingTray类的下载链接和文档。

(披露:我是这个项目的维护者。)



Answer 4:

您可以使用这个答案发布的代码: 从顶部的Android SlidingDrawer?

所提供的解决方案的功能设置Slidingdrawer的取向XML也很简单,只需要1类和attrs.xml一些补充和稳定的,因为它是从机器人会Slidingdrawer来源于SDK。 我还讨论了为什么我没有选择在互联网上找到其他流行库/解决方案/ SO。

QUICKLINK到要点: MultipleOrientationSlidingDrawer(源&例如)@要旨



文章来源: How to make an Android SlidingDrawer slide out from the left?