Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

android:fitsSystemWindows not working on Toolbar

I'm using android library Android-ObservableScrollView from ksoichiro. I use his sample Flexible Space with viewpager and i modify it. But there's some problem. You can see in my xml there is 2 android:fitsSystemWindows. One in LinearLayout, and the other in Toolbar. In LinearLayout working good. but in Toolbar is not working. Why this happen? Thank you. Sorry for my bad english

theres my xml code:

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent">

<com.github.ksoichiro.android.observablescrollview.TouchInterceptionFrameLayout
    android:id="@+id/container"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <ImageView
        android:id="@+id/image"
        android:layout_width="match_parent"
        android:layout_height="@dimen/flexible_background"
        android:scaleType="centerCrop"
        android:src="@drawable/bridge" />

    <View
        android:id="@+id/overlay"
        android:layout_width="match_parent"
        android:layout_height="@dimen/flexible_background"
        android:background="?attr/colorPrimary" />

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical"
        android:fitsSystemWindows="true">

        <FrameLayout
            android:id="@+id/header"
            android:layout_width="match_parent"
            android:layout_height="@dimen/flexible_height">

            <TextView
                android:id="@+id/title"
                android:layout_width="match_parent"
                android:layout_height="?attr/actionBarSize"
                android:layout_gravity="bottom"
                android:layout_margin="@dimen/abc_action_bar_default_padding_material"
                android:ellipsize="end"
                android:gravity="center_vertical"
                android:maxLines="1"
                android:minHeight="?attr/actionBarSize"
                android:textColor="@android:color/white"
                android:textSize="20sp" />
        </FrameLayout>

        <com.bright.nongkrongyuk.ui.SlidingTabLayout
            android:id="@+id/sliding_tabs"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_gravity="bottom"
            android:background="@android:color/black"
            app:sliding_textColor="@drawable/sliding_tab_profile" />

        <android.support.v4.view.ViewPager
            android:id="@+id/pager"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:background="@android:color/background_light" />
    </LinearLayout>
</com.github.ksoichiro.android.observablescrollview.TouchInterceptionFrameLayout>

<android.support.v7.widget.Toolbar
    android:id="@+id/toolbar"
    android:layout_width="match_parent"
    android:layout_height="?attr/actionBarSize"
    android:background="@android:color/transparent"
    android:minHeight="?attr/actionBarSize"
    android:fitsSystemWindows="true" />
</FrameLayout>
like image 292
Rainey Avatar asked Apr 24 '15 18:04

Rainey


1 Answers

The android:fitsSystemWindows attribute sets a padding. This means the fitting applies to the child views. You would have to apply this either to your FrameLayout or put the Toolbar into a nested Layout

It's really tricky to make a proper fullscreen layout with views fitted to the screen. I subclassed Fragment where I can declare a content-view which will get padding depending on Status- and/or Navigationbar

like image 87
robocab Avatar answered Nov 18 '22 19:11

robocab