这就是我得到它的方式,使用提到的库:
此布局包含顶级滑动菜单,它引用菜单的布局 (fragment_nav_menu) 和带有子菜单布局参考的布局如上图所示。
<com.jeremyfeinstein.slidingmenu.lib.SlidingMenu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:sliding="http://schemas.android.com/apk/res-auto"
android:id="@+id/slidingMenuRoot"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
sliding:viewAbove="@layout/sliding_sub_menu"
sliding:viewBehind="@layout/fragment_nav_menu"
sliding:touchModeAbove="fullscreen"
/>
这将是二级菜单 (sliding_sub_menu.xml),请注意您在此处设置为 viewAbove 的内容将是实际的顶级内容。
<com.jeremyfeinstein.slidingmenu.lib.SlidingMenu
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:sliding="http://schemas.android.com/apk/res-auto"
android:id="@+id/slidingSubMenuRoot"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
sliding:viewAbove="@layout/fragment_content"
sliding:viewBehind="@layout/fragment_sliding_menu"
sliding:touchModeAbove="fullscreen"
/>
内容布局 (fragment_content.xml) 可能是这样的,一个简单的 FrameLayout,然后以编程方式添加所需的片段。
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/mainContentFrame"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/app_background"
/>
同样,滑动子菜单内容在布局文件 (fragment_sliding_menu.xml) 中定义,并以编程方式用于广告片段实例。
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/mainContentFrame"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/app_background"
/>
要将片段添加到这些 FrameLayouts,请使用类似这样的方法(也可以在添加新片段之前删除潜在的先前片段):
FragmentTransaction fragTrans = getSupportFragmentManager().beginTransaction();
fragTrans.add(R.id.slidingSubMenuFrame, SubMenuFragment.newInstance(this));
fragTrans.commit();
我还没有测试太多,但似乎工作。当然,需要进一步的逻辑来实现所需的菜单行为(关闭侦听器、选择项目等)。