我在我的应用程序中使用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 :(得分:30)
我找到了一种简单的方法。您所要做的就是为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来设置为句柄,并没有改变它的旋转,但我更改了它的子项的旋转。这是为了防止我遇到的一个小问题,但一切正常,而且很简单。
答案 1 :(得分:6)
除了抓住SlidingDrawer
源代码,对其进行更改以及使用修改后的版本之外,我认为你不能。你同样不能使SlidingDrawer
从顶部下降。
答案 2 :(得分:1)
我已经重写了一个类,并使其成为我的开源库的一部分。我花了差不多一个星期才把它弄好了。请查看 Aniqroid Android开源库中的 SlidingTray 。
http://aniqroid.sileria.com/doc/api
在上面的链接中找到SlidingTray类的下载链接和文档。
(披露:我是该项目的维护者。)
答案 3 :(得分:0)
您可以使用此答案中发布的代码:Android SlidingDrawer from top?
提供的解决方案功能在xml中设置Slidingdrawer的方向也很简单,只需要1个类和attrs.xml中的一些添加并且稳定,因为它来自SDK的Androids Slidingdrawer。我还讨论了为什么我没有选择在互联网/ SO上找到的其他流行的库/解决方案。
快速链接到要点:MultipleOrientationSlidingDrawer (source & example) @ gist