Skip to content

QMUITopBarLayout

chanthuang edited this page Feb 15, 2019 · 1 revision

QMUITopBarLayout 是对 QMUITopBar 的一个包装,用于沉浸式状态栏场景,其内部将自带一个 QMUITopBar 作为子 View。

QMUITopBarLayout 在沉浸式状态栏中的作用

在沉浸式状态栏场景下,如果希望将顶部 Bar 延伸到状态栏的底部,就需要对顶部 Bar 设置 android:fitsSystemWindows="true"。而设置该属性后,该 View 将被系统设置一个 paddingTop (为了使 View 内部的内容不与状态栏重叠)。又因为 QMUITopBar 需要在高度固定的前提下使用,不方便被设置 padding。所以需要在 QMUITopBar 的外层包裹多一层容器,使 android:fitsSystemWindows 和 padding 作用在这一层,不影响内部的 QMUITopBar。所以便有了 QMUITopBarLayout

使用示例

如果 App 希望顶部 Bar 能延伸到状态栏背面,则应该使用 QMUITopBarLayout 配合 QMUIWindowInsetLayout 来实现。布局 xml 如下:

<com.qmuiteam.qmui.widget.QMUIWindowInsetLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <ScrollView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_marginTop="?attr/qmui_topbar_height"
        android:background="@color/qmui_config_color_white"
        android:fitsSystemWindows="true">
        <!-- Something else -->
    </ScrollView>

    <com.qmuiteam.qmui.widget.QMUITopBarLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:fitsSystemWindows="true"/>

</com.qmuiteam.qmui.widget.QMUIWindowInsetLayout>

相关类