如何在更改全屏/上方导航时使用导航组件navhostfragment

时间:2019-04-28 12:05:25

标签: java android android-architecture-components

我正在使用带有导航组件的单活动多片段。如何隐藏某些片段的底部导航栏?

我尝试了以下操作:

1-通过数据绑定控制底部导航栏的可见性。 2-在打开片段之前和在后堆栈上切换底部导航可见性(越野车) 3-使2个主机片段1全屏显示1受底部导航约束 4-制作2个导航图..

activity_main.xml:

df[(df.percentage > np.percentile(df.percentage, 10 )) & (df.percentage < np.percentile(df.percentage, 90 ))]

mainactivity.java:

      <com.google.android.material.bottomnavigation.BottomNavigationView
            android:id="@+id/bottomNavigation"
            android:visibility="@{viewModel.uiUtils.shouldShow ? View.VISIBLE:View.GONE}"/>

在全屏片段和普通片段之间切换时,底部导航栏会闪烁

2 个答案:

答案 0 :(得分:1)

官方文档建议使用OnDestinationChangedListener来解决此问题。 Look here.

答案 1 :(得分:0)

我使用了OnDestinationChangedListener,因为@Lavepe回答了...很久没在这里检查了,这是我的代码:

                if (destinationLabel.equals("FragmentX")) {
                    showBottomNav(true);
                    badgeBehaviour(false, false);}

ui功能:

private void showBottomNav(boolean b) {
    binding.bottomNavigation.setVisibility(b ? View.VISIBLE : View.GONE);
}

上方的视图是:

    <fragment
        android:id="@+id/navHostFragment"
        android:name="androidx.navigation.fragment.NavHostFragment"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        app:defaultNavHost="true"
        app:layout_constraintBottom_toTopOf="@+id/viewcartbadge"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:navGraph="@navigation/nav_graph" />

最好的问候 希望你觉得有用