正如其他人所说,切尼在他的回答中也说过 - 最好按预期保留它。但是,与DrawerLayout
的风格不同SlidingMenu
。谷歌还添加SlidingPaneLayout
了与 SlidingMenu 的风格更接近的匹配。
我最终SlidingPaneLayout
以这种方式实现了 a,因为它毕竟是我正在寻找的东西。(这也是 YouTube/Hangouts 应用的风格)
<android.support.v4.widget.SlidingPaneLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/sliding_pane_layout"
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:id="@+id/left_pane"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
<FrameLayout
android:id="@+id/content_frame"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"/>
</android.support.v4.widget.SlidingPaneLayout>
然后使用操作栏主页按钮打开:
getActionBar().setDisplayHomeAsUpEnabled(true);
getActionBar().setHomeButtonEnabled(true);
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action buttons
switch(item.getItemId()) {
case android.R.id.home:
if (mPaneLayout.isOpen())
mPaneLayout.closePane();
else
mPaneLayout.openPane();
return true;
default:
return super.onOptionsItemSelected(item);
}
}
然后,您可以PanelSlideListener
在滑动/打开/关闭时实现处理。
我建议也阅读 Adam Powell 在导航抽屉上的系列文章 - 第 3 部分介绍 SlidingPaneLayout 与导航抽屉的使用:
第 1 部分 - https://plus.google.com/+AdamWPowell/posts/2zi4DXd3jkm
第 2 部分 - https://plus.google.com/+AdamWPowell/posts/VdgexsZeXHW
第 3 部分 - https://plus.google.com/+AdamWPowell/posts/8j2GVw72i1E
第 4 部分 - https://plus.google.com/+AdamWPowell/posts/TtBFUXhe5HU