android - 状态栏下滚动的工具栏

标签 android android-toolbar android-coordinatorlayout android-appbarlayout

我正在尝试学习 CoordinatorLayout 及其功能。我已经将它与 AppBarLayout 结合使用。我的xml如下:

<android.support.design.widget.CoordinatorLayout

android:id="@+id/content"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">

    <android.support.v7.widget.RecyclerView
        android:id="@+id/recycler"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        app:layout_behavior="@string/appbar_scrolling_view_behavior"/>

    <android.support.design.widget.AppBarLayout
        android:id="@+id/appBarLayout"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">

        <android.support.v7.widget.Toolbar
            android:id="@+id/toolbar"
            android:layout_width="match_parent"
            android:layout_height="?attr/actionBarSize"
            android:background="?attr/colorPrimary"
            app:popupTheme="@style/ThemeOverlay.AppCompat.Light"
            app:layout_scrollFlags="scroll|enterAlways" />

    </android.support.design.widget.AppBarLayout>

    <android.support.design.widget.FloatingActionButton
        android:id="@+id/fab"
        android:layout_gravity="bottom|end"
        style="@style/FabStyle"/>

</android.support.design.widget.CoordinatorLayout>

我面临的问题是滚动工具栏位于状态栏下方。当我滚动 Recycler View 时,我希望工具栏滚动,但我不希望它位于状态栏下方。我该如何防止这种情况发生。

此外,当我尝试将 CoordinatorLayout 封装在另一个布局中时,例如:LinearLayout,主题中定义的 primaryDark 颜色不会显示在状态栏中。当我像上面的 xml 一样使用它时,它显示 primaryDark 颜色。有更好的方法吗?

最佳答案

我通过进入控制状态栏颜色的样式并将其更改为我想要的颜色而不是透明的来解决这个问题。现在状态栏似乎位于工具栏的顶部。

<resources>>
<style name="AppTheme.NoActionBar">
    <item name="windowActionBar">false</item>
    <item name="windowNoTitle">true</item>
    <item name="android:windowDrawsSystemBarBackgrounds">true</item>
    <item name="android:statusBarColor">@android:color/transparent</item>
</style>

`

<resources>>
<style name="AppTheme.NoActionBar">
    <item name="windowActionBar">false</item>
    <item name="windowNoTitle">true</item>
    <item name="android:windowDrawsSystemBarBackgrounds">true</item>
    <item name="android:statusBarColor">@color/colorPrimaryDark</item>
</style>

关于android - 状态栏下滚动的工具栏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32074805/

相关文章:

android - 查找运行 Activity 列表

android - 自定义工具栏开头不需要的填充/边距

android - "Back button"使用 getSupportActionbar 和 appcompat v7 工具栏

android - 如何让AppBarLayout中的Toolbar有透明背景

android - NestedScrollView 内的回收器 View 导致滚动从中间开始

android - 线程中的 Kotlin runnable 使用的值与传递的值不同

android - 如何创建与 CoordinatorLayout 内容重叠的 AppBarLayout

android - 在 CollapsingToolbarLayout 中添加带有标题的图标

Android:提高应用搜索结果排名

android - 图像为白色时的 CollapsingToolbarLayout