滑动窗格布局与3面板android

时间:2015-05-18 20:27:48

标签: android slidingpanelayout

我与SlidingPaneLayout斗争了。我正在尝试使用3个面板创建活动,如图所示: enter image description here

案例是我希望面板2默认可见,并且当用户从左向右滑动时应打开面板1并从右向左滑动面板3。 当我向SlidingPaneLayout添加视图时,默认情况下可以看到最后添加的视图。有什么方法可以设置哪个视图应该是开始视图? 这是我的布局xml:

<android.support.v4.widget.SlidingPaneLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/side_menu_layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <ListView android:id="@+id/left_drawer"
        android:layout_width="240dp"
        android:layout_height="match_parent"
        android:choiceMode="singleChoice"
        android:divider="@android:color/transparent"
        android:dividerHeight="0dp"
        android:background="@color/gray"/>
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="@color/oliveGreen">
    </LinearLayout>
    <ListView android:id="@+id/right_drawer"
        android:layout_width="240dp"
        android:layout_height="match_parent"
        android:layout_marginRight="0dp"
        android:layout_marginEnd="0dp"
        android:choiceMode="singleChoice"
        android:divider="@android:color/transparent"
        android:dividerHeight="0dp"
        android:background="@color/gray"/>
</android.support.v4.widget.SlidingPaneLayout>

在此配置下,rightDrawer显示为起始视图。我想显示LinearLayout并在其右侧设置rightDrawr。 我希望我说清楚,我会感谢任何帮助。先感谢您。

2 个答案:

答案 0 :(得分:0)

答案 1 :(得分:0)

修改

我刚刚重新阅读了SlidingPaneLayout的文档,似乎它只适用于2个观看次数。

您可能会尝试使用ViewPager伪造此布局,并使用适配器中的float getPageWidth(int)将页面0和2缩小。不确定这是否符合您的要求。

除此之外,您唯一能做的就是检查SlidingPaneLayout source code并对其进行修改,使其与抽屉一样使用left/right重力。

原始回答

不确定我理解你的问题,也许你希望它表现得不同。

您只需使用gravity来确定面板的哪一侧:

<android.support.v4.widget.SlidingPaneLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/side_menu_layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

   <View android:gravity="left" />
   <View android:gravity="right />
   <View  /> << that's the one always visible.

</android.support.v4.widget.SlidingPaneLayout>
像这样。