【问题标题】:Navigation drawer and two pane fragments导航抽屉和两个窗格片段
【发布时间】:2013-11-20 07:11:44
【问题描述】:
我正在使用导航抽屉,因为导航抽屉中的菜单是一个列表视图,我虽然在横向和使用平板电脑,这将使导航在两个窗格中“转换”。
我找不到有关如何“实现 2 个窗格”和使用导航抽屉的信息。由于我在 fragmentActivity 中使用了我的适配器和“onSelecetedItem”,我无法将列表视图作为片段,因为列表视图处理“抽屉行为”所以我想知道,¿我如何获得两个窗格布局并使用导航抽屉?
【问题讨论】:
标签:
android
listview
android-listview
android-fragments
navigation-drawer
【解决方案1】:
似乎您正在寻找的是SlidingPaneLayout 而不是DrawerLayout。从链接:
SlidingPaneLayout 与设计指南中描述的抽屉式导航不同,不应在相同的场景中使用。 SlidingPaneLayout 应该被认为只是一种允许通常在较大屏幕上使用的双窗格布局以自然方式适应较小屏幕的方式。
...
SlidingPaneLayout 的不当使用包括在应用程序的不同功能之间切换,例如从社交流视图跳转到您的个人资料视图 - 此类情况应改用导航抽屉模式。 (DrawerLayout 实现了这种模式。)
【解决方案2】:
在平板电脑上横屏时,您必须更改 MainActivity 的布局。
你可以把它放到layout-large-land文件夹中
<android.support.v4.widget.DrawerLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:weightSum="3">
<FrameLayout
android:id="@+id/content_frame"
android:layout_weight="2"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
<FrameLayout
android:id="@+id/fragment_place_tablet"
android:layout_weight="1"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
</LinearLayout>
<FrameLayout
android:id="@+id/drawer"
android:layout_width="260dp"
android:layout_height="match_parent"
android:layout_gravity="start"/>
</android.support.v4.widget.DrawerLayout>`