1

谷歌云端硬盘应用我想在平板电脑上创建一个类似于 Google Drive 应用程序(下)的额外信息视图。单击信息按钮时,此视图会从此视图从右侧滑入包含布局的右侧滑入。另一个例子是带有通知滑出面板的 Google+ 应用程序:在此处输入图像描述. 6Wunderkinder的SlidingLayer几乎可以工作,但不会在“抽屉”后面的视图上淡化半黑色背景,而且我还没有找到另一个这样做的库。

如果有人有任何建议/解决方案,请告诉我!

另外,我已经看过这个问题,而且没有一个答案是正确的。

4

2 回答 2

3

对于后代,这是这个问题的答案。正如史蒂夫贝内特的建议让我发现的那样,正确的方法是使用两个DrawerLayouts嵌套,如下所示:

<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/drawer_navigation_bar"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <android.support.v4.widget.DrawerLayout
        android:id="@+id/drawer_sidebar"
        android:orientation="vertical"
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <fragment
            android:id="@+id/fragment_main_content"
            android:name="MainContentFragment"
            android:layout_height="match_parent"
            android:layout_width="match_parent" />

        <fragment
            android:id="@+id/fragment_sidebar"
            android:name="SidebarFragment"
            android:layout_width="300dp"
            android:layout_height="match_parent"
            android:layout_gravity="end" />

    </android.support.v4.widget.DrawerLayout>

    <fragment
        android:id="@+id/fragment_navigation_bar"
        android:name="NavigationFragment"
        android:layout_height="match_parent"
        android:layout_width="300dp"
        android:layout_gravity="start" />

</android.support.v4.widget.DrawerLayout>

最里面DrawerLayout包含 的主要内容Activity,无论是片段还是其他一些布局组件。fragment_sidebar是将从右侧滑出的片段。然后,在顶层DrawerLayout你有fragment_nagivation_bar左边抽屉ListView或其他东西的房子。

然后,在 Activity Java 代码中,您有:

mDrawerLayoutLeft= (DrawerLayout) findViewById(R.id.drawer_navigation_bar);
mDrawerLayoutRight = (DrawerLayout) findViewById(R.id.drawer_sidebar);

mDrawerLayoutLeft.setDrawerShadow(R.drawable.drawer_shadow, GravityCompat.START);
mDrawerLayoutRight.setDrawerShadow(R.drawable.sidebar_shadow, GravityCompat.END);

一个可选的添加(但建议,为了用户体验的一致性)是在打开另一个抽屉时隐藏另一个抽屉,因此您的屏幕不仅仅包含抽屉。

我希望这对某人有所帮助!

于 2013-10-19T17:47:23.627 回答
2

这是抽屉布局。看看设计指南,它很好地说明了行为。

如果您想使用/自定义“半黑色背景”,请使用 DrawerLayout.setDrawerShadow() 和可绘制对象。谷歌在这里分发了一组drawables 。下载ActionBar 图标包并查找drawable_shadow.9.png

如果您希望菜单从右侧显示,请将其设置android:layout_gravity="end"为布局的第二个子项中的属性。

于 2013-10-19T16:14:42.917 回答