我与SlidingPaneLayout
斗争了。我正在尝试使用3个面板创建活动,如图所示:
案例是我希望面板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
。
我希望我说清楚,我会感谢任何帮助。先感谢您。
答案 0 :(得分:0)
设置自定义适配器并在那里定义它。 https://github.com/survivingwithandroid/Surviving-with-android/tree/master/SlidingPaneLayout/src/com/survivingwithandroid/slidingpanelayout/adapter
答案 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>
像这样。