返回

5 分钟让 Drawer 在状态栏下可见#

Android

#

#

#

5 分钟让 Drawer 在状态栏下可见

谷歌最新的设计理念 Material Design (“质感设计”)规范可以让你创建更美观、更一致的用户界面。其中一个最具特色的设计元素就是抽屉式导航栏,它可以跨越整个屏幕,包括状态栏。这使得用户可以更轻松地访问导航菜单,同时保持屏幕上其他内容的可见性。

实现这一设计非常简单,只需五分钟即可完成。

1. 在布局文件中添加DrawerLayout

首先,你需要在布局文件中添加一个DrawerLayout。DrawerLayout是一个容器布局,它可以包含两个子布局:一个作为抽屉,另一个作为抽屉后面的内容。

<androidx.drawerlayout.widget.DrawerLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/drawer_layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <!-- 抽屉 -->
    <LinearLayout
        android:id="@+id/drawer"
        android:layout_width="240dp"
        android:layout_height="match_parent"
        android:layout_gravity="start"
        android:background="#ffffff">

        <!-- 抽屉中的内容 -->

    </LinearLayout>

    <!-- 抽屉后面的内容 -->
    <FrameLayout
        android:id="@+id/content"
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <!-- 内容中的内容 -->

    </FrameLayout>

</androidx.drawerlayout.widget.DrawerLayout>

2. 设置抽屉的宽度

接下来,你需要设置抽屉的宽度。你可以通过在DrawerLayout的子布局中设置android:layout_width属性来实现。

<!-- 抽屉 -->
<LinearLayout
    android:id="@+id/drawer"
    android:layout_width="240dp"
    android:layout_height="match_parent"
    android:layout_gravity="start"
    android:background="#ffffff">

    <!-- 抽屉中的内容 -->

</LinearLayout>

3. 设置抽屉的背景色

你还可以设置抽屉的背景色。你可以通过在DrawerLayout的子布局中设置android:background属性来实现。

<!-- 抽屉 -->
<LinearLayout
    android:id="@+id/drawer"
    android:layout_width="240dp"
    android:layout_height="match_parent"
    android:layout_gravity="start"
    android:background="#ffffff">

    <!-- 抽屉中的内容 -->

</LinearLayout>

4. 添加阴影

为了让抽屉看起来更美观,你可以添加阴影。你可以通过在DrawerLayout的子布局中设置android:elevation属性来实现。

<!-- 抽屉 -->
<LinearLayout
    android:id="@+id/drawer"
    android:layout_width="240dp"
    android:layout_height="match_parent"
    android:layout_gravity="start"
    android:background="#ffffff"
    android:elevation="10dp">

    <!-- 抽屉中的内容 -->

</LinearLayout>

5. 设置透明状态栏

最后,你需要设置透明状态栏。你可以通过在Activity的主题中设置android:windowTranslucentStatus属性来实现。

<activity
    android:name=".MainActivity"
    android:theme="@style/AppTheme">

    <!-- 其他属性 -->

</activity>

<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
    <item name="android:windowTranslucentStatus">true</item>
</style>

现在,你的抽屉式导航栏就可以跨越整个屏幕,包括状态栏了。并且,抽屉后面的所有控件都会以灰暗的网格形式可见。