【发布时间】:2013-12-11 08:57:07
【问题描述】:
我在我的应用程序中使用NavigationDrawer 作为主菜单。我的一些片段使用SlidingPaneLayout。
目前,我在右侧显示NavigationDrawer,在左侧显示SlidingPaneLayout,总是有点可见。
但我希望左侧的 NavigationDrawer 和右侧的 SlidingPaneLayout(就像在环聊中一样)总是有点可见。
问题:
我知道如何将NavigationDrawr 移到另一侧,但我不知道如何(如果可能)将SlidingPaneLayout 移到右侧?让它从右侧滑入...
我的解决方案
<android.support.v4.widget.SlidingPaneLayout
android:id="@+id/sliding_pane_layout"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<LinearLayout
android:id="@+id/fragment_main_container"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="left"
android:layout_marginRight="0dp"
android:orientation="vertical" >
<include
android:layout_width="match_parent"
android:layout_height="wrap_content"
layout="@layout/card_toast_container" />
<FrameLayout
android:id="@+id/fragment_main"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</LinearLayout>
<!-- marginLeft: set it to width - 150 in your code!!! -->
<FrameLayout
android:id="@+id/fragment_slider"
android:layout_width="150dp"
android:layout_height="match_parent"
android:layout_gravity="right"
android:layout_marginLeft="0dp" />
</android.support.v4.widget.SlidingPaneLayout>
并使用一些包装方法,例如以下,以获得更容易和更易读的代码:
public boolean isSliderMenuShown()
{
return !mSlidingLayout.isOpen();
}
public static void openSlider(boolean isSliderLeft, MySlidingPaneLayout slidingLayout)
{
slidingLayout.closePane();
}
public static void closeSlider(boolean isSliderLeft, MySlidingPaneLayout slidingLayout)
{
slidingLayout.openPane();
}
【问题讨论】:
-
嗨@promo85,确实得到了将SlidingPaneLayout向右移动的任何解决方案。如果你找到了,请帮助我......
-
我只是从一个开放的
SlidingPaneLayout开始...我在我的主帖中为您添加了一些代码,它应该解释如何将菜单放在右侧...
标签: android navigation-drawer slidingpanelayout