Mouli
Mouli

Reputation: 163

Android fragment getting hidden under the action bar

Got a weird problem. Contents of the fragment getting hidden under the action bar. Its a pretty basic drawer layout and a fragment.

enter image description here

New to android and don't know if this is how it is. I used margin just to pull this down, as you can see below. But this doesn't sound correct to me... please throw some light where am I going wrong. Thanks in Advance.

enter image description here

Upvotes: 7

Views: 5216

Answers (4)

Biju
Biju

Reputation: 21

Setting top margin of the fragment's layout to height of AcionBar worked, at last!!

android:layout_marginTop="?attr/actionBarSize" 

Don't know if this is a better solution but for me this is the only working solution.

Upvotes: 0

Daniel C Jacobs
Daniel C Jacobs

Reputation: 750

Another possible solution for many who see this question is to change the parent layout of the toolbar to LinearLayout (likely with a vertical orientation), as this type of layout does not allow its children to overlap.

For example, this layout in activity_main.xml will result in the fragment being below the toolbar, rather than behind it:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:orientation="vertical">

    <com.google.android.material.appbar.AppBarLayout
        android:id="@+id/app_bar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

        <androidx.appcompat.widget.Toolbar
            android:id="@+id/toolbar"
            android:layout_width="match_parent"
            android:layout_height="?attr/actionBarSize"/>
    </com.google.android.material.appbar.AppBarLayout>

    <FrameLayout
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        tools:context=".MainActivity">

        <androidx.fragment.app.FragmentContainerView
            android:id="@+id/nav_host_fragment"
            android:name="androidx.navigation.fragment.NavHostFragment"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            app:defaultNavHost="true"
            app:navGraph="@navigation/nav_graph"/>
    </FrameLayout>
</LinearLayout>

Upvotes: 0

Uttam Pramanik
Uttam Pramanik

Reputation: 11

Add an attribute app:layout_behavior="@string/appbar_scrolling_view_behavior" to your parent view of your fragment.

Upvotes: 1

Blackbelt
Blackbelt

Reputation: 157487

It is the normal and expected behaviour if you set FEATURE_ACTION_BAR_OVERLAY (android:windowActionBarOverlay) . Here the documentation

Upvotes: 3

Related Questions