Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Can't remove space on top of nav_host_fragment

I just implemented a bottom navigation (AS's default - File -> New -> Activity -> Bottom Navigation Activity) Everything is fine except for a space on the top of the nav_host_fragment.

wrong space

Since it was generated in a ConstraintLayout, I tried to clean the constraints and set the top constraint with parent, setting margin to '0dp' and set height to match_constraint.

I unsuccessfully deleted the constraints and tried over and over again.

I used Clean Project.

I changed to RelativeLayout and set arguments like this:

 <fragment             android:id="@+id/nav_host_fragment"             android:name="androidx.navigation.fragment.NavHostFragment"             android:layout_width="match_parent"             android:layout_height="match_parent"             android:layout_alignParentTop="true"             android:layout_above="@+id/nav_view"             app:defaultNavHost="true"             app:navGraph="@navigation/mobile_navigation" /> 

But the space between nav_host_fragment and the top is still there.

Here's the lyout file:

<RelativeLayout 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:id="@+id/container"         android:layout_width="match_parent"         android:layout_height="match_parent"         android:paddingTop="?attr/actionBarSize">      <com.google.android.material.bottomnavigation.BottomNavigationView             android:id="@+id/nav_view"             android:layout_width="match_parent"             android:layout_height="wrap_content"             android:layout_alignParentBottom="true"             android:background="?android:attr/windowBackground"             app:menu="@menu/bottom_nav_menu" />      <fragment             android:id="@+id/nav_host_fragment"             android:name="androidx.navigation.fragment.NavHostFragment"             android:layout_width="match_parent"             android:layout_height="match_parent"             android:layout_alignParentTop="true"             android:layout_above="@+id/nav_view"             app:defaultNavHost="true"             app:navGraph="@navigation/mobile_navigation" />  </RelativeLayout> 
like image 590
Igor Grecco Lacourt Avatar asked Aug 23 '19 14:08

Igor Grecco Lacourt


People also ask

What is Fragment back stack in Android?

Calling addToBackStack() commits the transaction to the back stack. The user can later reverse the transaction and bring back the previous fragment by pressing the Back button. If you added or removed multiple fragments within a single transaction, all of those operations are undone when the back stack is popped.

What is FragmentManager in Android?

FragmentManager which is used to create transactions for adding, removing or replacing fragments. fragmentManager. beginTransaction(); Start a series of edit operations on the Fragments associated with this FragmentManager. The FragmentTransaction object which will be used.

What is popUpToInclusive?

popUpTo and popUpToInclusive For example, if your app has an initial login flow, once a user has logged in, you should pop all of the login-related destinations off of the back stack so that the Back button doesn't take users back into the login flow.


2 Answers

Remove this line from your Relative Layout.

android:paddingTop="?attr/actionBarSize" 
like image 133
Samir Dangal Avatar answered Oct 29 '22 09:10

Samir Dangal


Answer from @Mike

That looks like the android:paddingTop="?attr/actionBarSize" on the

 <RelativeLayout 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:id="@+id/container"         android:layout_width="match_parent"         android:layout_height="match_parent"         >      <com.google.android.material.bottomnavigation.BottomNavigationView             android:id="@+id/nav_view"             android:layout_width="match_parent"             android:layout_height="wrap_content"             android:layout_alignParentBottom="true"             android:background="?android:attr/windowBackground"             app:menu="@menu/bottom_nav_menu" />      <fragment             android:id="@+id/nav_host_fragment"             android:name="androidx.navigation.fragment.NavHostFragment"             android:layout_width="match_parent"             android:layout_height="match_parent"             android:layout_alignParentTop="true"             android:layout_above="@+id/nav_view"             app:defaultNavHost="true"             app:navGraph="@navigation/mobile_navigation" />  </RelativeLayout> 
like image 30
Avinash kumawat Avatar answered Oct 29 '22 09:10

Avinash kumawat