我正在编写一款Android应用程序,以利用抽屉布局功能。我希望能够在整个应用程序中使用抽屉布局作为导航工具。为了使用抽屉布局,我在我的活动布局xml文件中使用以下内容:
<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">
<!-- The main content view -->
<LinearLayout
android:id="@+id/main_content_layout"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<!-- The navigation drawer -->
<ListView android:id="@+id/navigational_drawer"
android:layout_width="220dp"
android:layout_height="match_parent"
android:layout_gravity="start"
android:choiceMode="singleChoice"
android:divider="@android:color/transparent"
android:dividerHeight="0dp"
android:background="#FFFFFF"/>
</android.support.v4.widget.DrawerLayout>
然而,我在尝试将DrawerLayout应用于PreferenceActivity时遇到了很多困难。PreferenceActivity是一种特殊的活动,我希望保留它,因为它可以帮助我在我的应用程序中保持Android偏好设置的外观和感觉;话虽如此,它使用addPreferencesFromResource()调用来加载首选项,并且不使用addContentView()调用来加载XML文件;偏好设置资源通常包含PreferenceScreen标签,这些标签不喜欢被包裹在DrawerLayout中。
有没有人遇到过这个问题,你是如何解决的?如果你的Android应用程序中有PreferenceActivity并且在同一个活动中有DrawerLayout可用,请分享你是如何做到的。任何帮助都将不胜感激。
编辑:如果我更改
<!-- The main content view -->
<LinearLayout
android:id="@+id/main_content_layout"
android:layout_width="match_parent"
android:layout_height="match_parent" />
为了
<ListView
android:id="@android:id/list"
android:layout_width="fill_parent"
android:layout_height="fill_parent" />
如果PreferenceActivity加载时应用程序不崩溃(因为"id"匹配Preference Activity期望找到的内容),那么一切正常;然而,抽屉并没有显示出来。好像ListView “list” 下面的所有内容都被忽略了。