-
Notifications
You must be signed in to change notification settings - Fork 2.7k
QMUITopBarLayout
chanthuang edited this page Feb 15, 2019
·
1 revision
QMUITopBarLayout
是对 QMUITopBar 的一个包装,用于沉浸式状态栏场景,其内部将自带一个 QMUITopBar
作为子 View。
在沉浸式状态栏场景下,如果希望将顶部 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>