我正在编写一个Android应用程序以利用抽屉布局功能。我希望能够将Drawer Layout作为整个应用程序中可用的导航工具。要使用抽屉布局,我用我的活动布局的XML文件如下:如何在Android应用程序中围绕PreferenceActivity包装DrawerLayout?
<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文件;首选项资源通常包含不喜欢包装在DrawerLayouts中的PreferenceScreen标签。
任何人都必须处理这个问题,你是如何解决它的?如果您在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“列表”匹配什么偏好活动期待的应用程序不会崩溃找);然而,抽屉没有显示。这几乎就好像ListView“list”下面的所有内容都被忽略了一样。
我也想保留我现有的活动并动态添加抽屉。不是因为PreferenceActivity,而是因为有将近100个活动并将它们全部更改为碎片需要一段时间。我能够用HorizontalScrollView来做到这一点,但我觉得DrawerLayout会更干净。 –