gpt4 book ai didi

android - NavHostFragment 的底部隐藏在 BottomNavigationView 后面

转载 作者:行者123 更新时间:2023-12-03 15:55:14 28 4
gpt4 key购买 nike

我的布局在底部有一个导航栏,主要内容在 NavHostFragment 内。现在 NavHostFragment 的底部隐藏在导航栏后面。我怎样才能解决这个问题?

这是 Activity 的主要布局:

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_height="match_parent"
android:layout_width="match_parent">

<fragment
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:layout_constraintBottom_toTopOf="@id/nav_view"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent"
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_marginStart="0dp"
android:layout_marginEnd="0dp"
android:background="?android:attr/windowBackground"
android:layout_alignParentBottom="true"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:menu="@menu/bottom_nav_menu" />

</androidx.constraintlayout.widget.ConstraintLayout>

以及导航主机的 fragment 之一:
<?xml version="1.0" encoding="utf-8"?>

<androidx.core.widget.NestedScrollView
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="wrap_content"
android:isScrollContainer="true"
app:layout_constraintTop_toTopOf="parent">


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

</LinearLayout>

</androidx.core.widget.NestedScrollView>

最佳答案

我有同样的问题,我找到了治疗方法。 @ianhanniballake 是对的,但这不是最终解决方案。问题在于 NavHostFragment 的“layout_height”值。您应该在 activity_main.xml 中完成接下来的 3 个步骤:

  • 确定或删除 android:paddingTop="?attr/actionBarSize"从根约束布局
  • 添加 app:layout_constraintTop_toBottomOf="@id/nav_host_fragment"到 <底部导航 View >
  • 中的更改
    android:layout_height="match_parent"


  • android:layout_height="0dp"
    android:layout_weight="1"

    ========================

    小调查:

    让我们从头开始创建一个“底部导航 Activity ”项目。

    步骤 0.1:

    将背景添加到 activity_main.xml 的根目录
    android:background="@android:color/holo_green_light"

    步骤 0.2:
    将 fragment_home.xml 的内容更改为:
    <?xml version="1.0" encoding="utf-8"?>
    <FrameLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@android:color/holo_orange_dark">

    <TextView
    android:id="@+id/left_top"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="L_T"
    android:background="#ffcccc"
    android:layout_gravity="start|top"
    android:textSize="120sp" />

    <TextView
    android:id="@+id/right_bottom"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="R_B"
    android:background="#ccffcc"
    android:layout_gravity="end|bottom"
    android:textSize="120sp" />
    </FrameLayout>

    你会看见:



    第一步:删除 android:paddingTop="?attr/actionBarSize" :



    第二步:添加 app:layout_constraintTop_toBottomOf="@id/nav_host_fragment" BottomNavigationView 的约束



    第 3 步(最终) .将高度更改为 0dp 并添加 android:layout_weight="1"对于 NavHostFragment



    PS.希望这有助于解决其他类似问题

    关于android - NavHostFragment 的底部隐藏在 BottomNavigationView 后面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60426343/

    28 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com