无法删除nav_host_fragment

时间:2019-08-23 14:25:28

标签: android android-fragments bottomnavigationview

我刚刚实现了底部导航(AS的默认设置-文件->新建->活动->底部导航活动),一切正常,除了nav_host_fragment顶部有一个空格。

wrong space

由于它是在ConstraintLayout中生成的,因此我尝试清除约束并使用parent设置顶部约束,将margin设置为'0dp',并将height设置为{{1 }}。

我未成功删除约束并反复尝试。

我使用了match_constraint

我更改为RelativeLayout并设置如下参数:

Clean Project

但是 <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" /> 和顶部之间的空间仍然存在。

这是配置文件:

nav_host_fragment

3 个答案:

答案 0 :(得分:8)

从您的 相对布局 中删除这一行。

android:paddingTop="?attr/actionBarSize"

答案 1 :(得分:1)

@Mike的答案

  

看起来像android:paddingTop =“?attr / actionBarSize”   

 <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>

答案 2 :(得分:0)

在我的布局中,我还算出了导航主机片段的底部空间。

  <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        android:id="@+id/container"
        android:layout_width="match_parent"
        android:layout_height="match_parent">
    
        <com.google.android.material.appbar.MaterialToolbar
            android:id="@+id/toolbarMain"
            android:layout_width="match_parent"
            android:layout_height="?attr/actionBarSize"
            android:layout_alignParentTop="true"
            android:background="@color/colorPrimary"
            app:contentInsetStart="@dimen/_minus10sdp">
    
            <LinearLayout
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="center"
                android:layout_marginStart="0dp"
                android:layout_marginEnd="0dp"
                android:gravity="center"
                android:orientation="horizontal">
    
                <com.google.android.material.textview.MaterialTextView
                    android:id="@+id/txtTitleMain"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:gravity="center"
                    android:paddingStart="0dp"
                    android:paddingEnd="@dimen/_15sdp"
                    android:text="@string/app_name"
                    android:textAllCaps="false"
                    android:textColor="@color/colorWhite"
                    android:textSize="@dimen/_14ssp"
                    android:textStyle="bold" />
    
            </LinearLayout>
    
    
        </com.google.android.material.appbar.MaterialToolbar>
    
        <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_above="@+id/nav_view"
            android:layout_below="@id/toolbarMain"
            app:defaultNavHost="true"
            app:navGraph="@navigation/mobile_navigation" />
    
    
        <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:layout_marginStart="0dp"
            android:layout_marginEnd="0dp"
            android:background="?android:attr/windowBackground"
            app:menu="@menu/bottom_nav_menu" />
    
    </RelativeLayout>