Android:如何在 parent activity 及其 button/nav 视图上显示片段

Android: How to show a fragment over parent activity and its button/nav views

我有一个 main activity,它通过片段事务启动片段。我希望该片段 完全 填满屏幕,完全不显示 parent 的视图。但是,当我提交片段事务时,我仍然可以看到 parent activity 的底部导航视图及其按钮。我制作了一个小演示应用程序来展示我的意思:

主要 activity 有黄色背景。 "Testclick" 按钮使用以下代码启动片段事务。

这是交易的结果。片段的红色背景现在可见,但 bottomNavigationView 和按钮仍然可见(这是不需要的)。

片段交易

bttn.setOnClickListener {
            supportFragmentManager
                .beginTransaction()
                .replace(R.id.contentview, Frag1())
                .addToBackStack(null)
                .commit()
        }

主要Activity布局

<androidx.constraintlayout.widget.ConstraintLayout 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/contentview"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@color/yellow"
    tools:context=".MainActivity">

...

</androidx.constraintlayout.widget.ConstraintLayout>

您的 R.id.contentview 必须在按钮后面的背景中

啊其实你知道有什么好工具,在工具->布局检查器中叫做LayoutInspector,你可以在你的activity是运行时实际看到布局是如何设置的。在您的情况下,片段的布局被添加到 activity.

的布局中

抱歉一开始没看到id