Translucent status bar and toolbar

后端 未结 8 1892
醉梦人生
醉梦人生 2020-12-16 12:43

I\'d like to integrate something like this:

And I\'ve done it like this, but I can\'t seem to put the imageview below the toolbar. Without the toolbar, I ca

相关标签:
8条回答
  • 2020-12-16 13:33

    TLDR; You have to wrap the toolbar in a LinearLayout.

    What I did to make it work was similar to @Akhilesh Kumar's approach but I wrapped the toolbar in a LinearLayout which fixed the toolbar overlapping. I also put the fitsSystemWindows to true in that LinearLayout.

    <FrameLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:fitsSystemWindows="true"
    tools:context="com.project.android.PhotoActivity">
    
    <ImageView
        android:id="@+id/photo_image"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:adjustViewBounds="true"
        android:scaleType="fitStart"/>
    
    <LinearLayout
    
        android:id="@+id/content_card_image"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical"
        android:fitsSystemWindows="true"
        >
    
        <android.support.v7.widget.Toolbar
            android:id="@+id/photo_tl"
            android:layout_width="match_parent"
            android:layout_height="?attr/actionBarSize"
            android:background="#59000000"
            tools:ignore="UnusedAttribute"/>
    
    </LinearLayout>
    </FrameLayout>
    

    I hope it helps.

    0 讨论(0)
  • 2020-12-16 13:36

    As you said,

    "I've already tried putting the toolbar in a FrameLayout, but doing that my toolbar simply hides, like this:".


    The problem with this is the order of adding childView in FrameLayout, you added Toolbar as first child and after that you added ImageView. this is why image hides the toolbar. Instead, the order of views inside FameLayout should be like this

    <FrameLayout   
              xmlns:android="http://schemas.android.com/apk/res/android"
              xmlns:tools="http://schemas.android.com/tools"       
              android:layout_width="match_parent"
              android:layout_height="match_parent"
              android:fitsSystemWindows="true"
              tools:context="com.project.android.PhotoActivity">
    
              <ImageView
                  android:id="@+id/photo_image"
                  android:layout_width="match_parent"
                  android:layout_height="match_parent"
                  android:adjustViewBounds="true"
                  android:scaleType="fitStart" />
    
              <android.support.v7.widget.Toolbar
                  android:id="@+id/photo_tl"
                  android:layout_width="match_parent"
                  android:layout_height="?attr/actionBarSize"
                  android:background="#59000000"
                  tools:ignore="UnusedAttribute" />
    
        </FrameLayout>
    

    Also for API level >=19 ,you can add this attribute in style.xml file to make statusBar transparent
    <item name="android:windowTranslucentStatus">true</item>
    For making content behind statusBar use this link

    https://developer.android.com/training/system-ui/status.html#behind

    0 讨论(0)
提交回复
热议问题