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();
}