【问题标题】:make status bar above the collapsed toolbar imageview在折叠的工具栏图像视图上方制作状态栏
【发布时间】:2018-11-14 23:59:22
【问题描述】:

https://github.com/antoniolg/MaterializeYourApp

我基本上按照上面链接中的代码,但我仍然无法在折叠的工具栏图像视图上方制作状态栏。

我发现可行的一件事是将<item name="android:windowTranslucentStatus">true</item> 放入样式中。但这会使工具栏和状态栏重叠。

CollapsedToolbarImageExpandedToolbarImage

基本上,我希望第一张图片中的状态栏与第二张图片一样。而且我猜状态栏已经是半透明的。这是我在风格中加入的部分内容。

<item name="android:windowIsTranslucent">true</item> <item name="android:statusBarColor">@android:color/transparent</item> <item name="android:windowDrawsSystemBarBackgrounds">true</item>

另一个问题是我以编程方式设置了折叠的标题文本,但它也没有显示出来。

我也尝试过一些 fitSystemWindow="true" 但它仍然不起作用。下面是xml文件。

<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
tools:context=".ScrollingActivity">

<android.support.design.widget.AppBarLayout
    android:id="@+id/up_app_bar"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:fitsSystemWindows="true">

    <android.support.design.widget.CollapsingToolbarLayout
        android:id="@+id/up_ctoolbar"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:fitsSystemWindows="false"
        app:collapsedTitleGravity="center"
        app:contentScrim="@android:color/transparent"
        app:expandedTitleGravity="center"
        app:layout_behavior="@string/title_activity_scrolling"
        app:layout_scrollFlags="scroll|exitUntilCollapsed"
        app:titleEnabled="true"
        app:toolbarId="@+id/up_toolbar">

        <ImageView
            android:id="@+id/header"
            android:layout_width="match_parent"
            android:layout_height="@dimen/header_height"
            android:background="@drawable/nav_background"
            android:fitsSystemWindows="true"
            android:scaleType="centerCrop"
            app:layout_collapseMode="parallax" />

        <android.support.v7.widget.Toolbar
            android:id="@+id/up_toolbar"
            android:layout_width="match_parent"
            android:layout_height="?attr/actionBarSize"
            app:contentInsetStart="0dp"
            app:layout_collapseMode="pin">

            <android.support.constraint.ConstraintLayout
                android:layout_width="match_parent"
                android:layout_height="match_parent">

                <ImageButton
                    android:id="@+id/up_back"
                    android:layout_width="60dp"
                    android:layout_height="60dp"
                    android:background="@android:color/transparent"
                    android:visibility="visible"
                    app:layout_constraintBottom_toBottomOf="parent"
                    app:layout_constraintStart_toStartOf="parent"
                    app:layout_constraintTop_toTopOf="parent"
                    app:srcCompat="@drawable/ic_back_white" />

                <ImageButton
                    android:id="@+id/up_search"
                    android:layout_width="60dp"
                    android:layout_height="60dp"
                    android:background="@android:color/transparent"
                    android:visibility="visible"
                    app:layout_constraintBottom_toBottomOf="parent"
                    app:layout_constraintEnd_toEndOf="parent"
                    app:layout_constraintTop_toTopOf="parent"
                    app:srcCompat="@drawable/ic_search_white" />
            </android.support.constraint.ConstraintLayout>
        </android.support.v7.widget.Toolbar>

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

<include layout="@layout/user_profile_content"
    app:layout_behavior="@string/appbar_scrolling_view_behavior"/>

【问题讨论】:

  • 尝试将&lt;item name="android:windowTranslucentNavigation"&gt;true&lt;/item&gt; 添加到您的应用主题中。
  • @KaranMer 很遗憾不起作用。
  • 你想只设置状态栏透明还是工具栏和状态栏都透明?
  • 我认为状态已经是透明的,但它只是不在图像视图之上。
  • 你可以在你的父协调器布局中设置fitsSystemWindows="false" 并尝试一下。

标签: android android-toolbar android-coordinatorlayout android-collapsingtoolbarlayout android-statusbar


【解决方案1】:

您应该将以下代码添加到您的 AppBarLayout 块中

 android:background="@android:color/transparent"
        android:elevation="0dp"
        android:shadowColor="@android:color/transparent"
        android:stateListAnimator="@null"

它应该可以帮助您解决问题

【讨论】:

  • 遗憾的是它没有。顺便说一句,我设置了标题,但它也没有出现,你知道为什么吗?
【解决方案2】:

****更新**** 我就拿你的,让它发挥作用并粘贴在下面。我也使用材料栏而不是小部件,因此如果您没有材料库,则需要将其添加到您的 gradle 中。

 implementation "com.google.android.material:material:1.0.0"

现在是布局

 <?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
android:animateLayoutChanges="true"
tools:context=".ScrollingActivity">

<com.google.android.material.appbar.AppBarLayout
    android:id="@+id/up_app_bar"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
    android:fitsSystemWindows="true">

    <com.google.android.material.appbar.CollapsingToolbarLayout
        android:id="@+id/up_ctoolbar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:fitsSystemWindows="true"
        android:animateLayoutChanges="true"
        app:collapsedTitleGravity="center"
        app:contentScrim="@android:color/transparent"
        app:expandedTitleGravity="center"
        app:titleEnabled="true"
        app:contentScrim="@color/YourColor"
        app:layout_scrollFlags="scroll|snap|exitUntilCollapsed"
        app:scrimAnimationDuration="400"
        app:statusBarScrim="@color/transparent"
        app:toolbarId="@+id/up_toolbar">

        <ImageView
            android:id="@+id/header"
            android:layout_width="match_parent"
            android:layout_height="@dimen/header_height"
            android:background="@drawable/nav_background"
            android:adjustViewBounds="true"
            android:fitsSystemWindows="true"
            android:scaleType="centerCrop"
            app:layout_collapseMode="parallax" />

        <android.support.v7.widget.Toolbar
            android:id="@+id/up_toolbar"
            android:layout_width="match_parent"
            android:layout_height="?attr/actionBarSize"
            app:layout_collapseMode="pin">

            <android.support.constraint.ConstraintLayout
                android:layout_width="match_parent"
                android:layout_height="match_parent">

                <ImageButton
                    android:id="@+id/up_back"
                    android:layout_width="60dp"
                    android:layout_height="60dp"
                    android:background="@android:color/transparent"
                    android:visibility="visible"
                    app:layout_constraintBottom_toBottomOf="parent"
                    app:layout_constraintStart_toStartOf="parent"
                    app:layout_constraintTop_toTopOf="parent"
                    app:srcCompat="@drawable/ic_back_white" />

                <ImageButton
                    android:id="@+id/up_search"
                    android:layout_width="60dp"
                    android:layout_height="60dp"
                    android:background="@android:color/transparent"
                    android:visibility="visible"
                    app:layout_constraintBottom_toBottomOf="parent"
                    app:layout_constraintEnd_toEndOf="parent"
                    app:layout_constraintTop_toTopOf="parent"
                    app:srcCompat="@drawable/ic_search_white" />
            </android.support.constraint.ConstraintLayout>
        </android.support.v7.widget.Toolbar>

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

风格:

<style name="ThemeOverlay.AppCompat.Dark.ActionBar" parent="Base.ThemeOverlay.AppCompat.Dark.ActionBar"/>

****老答案****

我知道这有点晚了,但如果它对其他人有帮助的话。 添加:

app:titleEnabled="false"

到标题问题的折叠工具栏。

对于浮动在 imageView 上方的工具栏,将 imageView 的 layout_gravity 设置为 bottom 或默认为 center。这将为您提供您正在寻找的工具栏下方的底部图像视图。

可选:

Parallax 用于为 imageview 提供一个很好的平行滚动效果动画到工具栏中。

<ImageView
            android:id="@+id/toolbarCollapsingImage"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="?attr/actionBarSize"
            android:layout_gravity="bottom"
            android:adjustViewBounds="true"
            android:scaleType="centerCrop"
            app:layout_collapseMode="parallax"/>

【讨论】:

  • 我刚试过。我只是将up_ctoolbarapp:titleEnabled="true" 更改为app:titleEnabled="false" 并将android:layout_gravity="bottom" 添加到我的header。并且状态栏仅在滚动时浮动在图像上方。当它完全折叠或完全展开时,状态栏仍然堆叠在imageview上方。
  • 嗨@SeakyLuo 我继续,只是拿了你的例子并为你重新做了。试一试,但它应该工作得很好。我唯一不确定的是工具栏中的 imageButtons,我猜这是您跳过正常菜单膨胀流程的方式,但如果您看到奇怪的行为,请先删除它们。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-10-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多