Android科特林;尽管将背景设置为透明,为什么它从 Bottomnavigationview 显示白色背景?

Android Kotlin; Why is it showing white background from Bottomnavigationview despite of setting background transparent?

问题是它在 bottomnavigationview 中显示白色背景,但我希望它是透明的。为什么要这样做?

看起来我的 android 应用程序:

这是我的代码:

<com.google.android.material.bottomnavigation.BottomNavigationView
        android:id="@+id/bottomNavigationView"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        app:itemRippleColor="#00931E30"
        android:outlineAmbientShadowColor="#00931E30"
        android:outlineSpotShadowColor="#00931E30"
        android:visibility="visible"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.0"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="1.0"
        app:menu="@menu/bottom_menu"
        tools:visibility="visible">

我也试过用这个设置 bottomnavigationview 的背景:

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
    <solid android:color="@android:color/transparent" />
</shape>

以及通过编程:

 bottomNavigationView.background = ColorDrawable(Color.TRANSPARENT)
 bottomNavigationView.itemBackgroundResource = R.drawable.transparent

我不知道问题出在哪里,如果有人知道解决方案,我将不胜感激。

activity 的整个 XML 看起来是这样的:

<?xml version="1.0" encoding="utf-8"?>
<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:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".ui.MainActivity">

    <ImageView
        android:id="@+id/imgBackground"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:scaleType="centerInside"
        android:src="@drawable/ic_launcher_track"
        tools:ignore="MissingConstraints" />

    <com.google.android.material.bottomnavigation.BottomNavigationView
        android:id="@+id/bottomNavigationView"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        app:itemRippleColor="#AD931E30"
        android:background="#028C8C8C"
        android:outlineAmbientShadowColor="#00931E30"
        android:elevation="10dp"
        android:layout_alignParentBottom= "true"
        android:visibility="visible"
        app:layout_constraintHorizontal_bias="1.0"
        app:layout_constraintVertical_bias="1.0"
        app:menu="@menu/bottom_menu"
        tools:visibility="visible"
        >



        <com.google.android.material.tabs.TabItem
            android:background="#00424242"
            android:id="@+id/go_to_home"
            android:layout_width="100dp"
            android:layout_height="70dp"
            android:onClick="goToHome"
            android:text="schmutz">

        </com.google.android.material.tabs.TabItem>

        <com.google.android.material.tabs.TabItem
            android:id="@+id/go_to_dash"
            android:layout_width="100dp"
            android:layout_height="70dp"
            android:layout_marginLeft="100dp"
            android:onClick="goToDash"
            android:text="schmutz" />

        <com.google.android.material.tabs.TabItem
            android:id="@+id/go_to_not"
            android:layout_width="100dp"
            android:layout_height="70dp"
            android:layout_marginLeft="180dp"
            android:onClick="goToNotification"
            android:text="schmutz" />

        <com.google.android.material.tabs.TabItem
            android:id="@+id/go_to_profile"
            android:layout_width="100dp"
            android:layout_height="70dp"
            android:layout_marginLeft="260dp"
            android:text="schmutz"
            android:onClick="goToProfile"/>

    </com.google.android.material.bottomnavigation.BottomNavigationView>

    <com.google.android.material.tabs.TabLayout
        android:id="@+id/tab_tablayout"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        app:tabIndicatorColor="#00B8B8B8"
        app:tabIndicatorHeight="3dp"
        app:tabMode="fixed"
        tools:ignore="MissingConstraints" />

    <androidx.viewpager.widget.ViewPager
        android:id="@+id/view_pager"
        android:layout_width="match_parent"
        android:layout_height="675dp"
        android:layout_alignParentBottom="true"
        android:layout_marginTop="?attr/actionBarSize"
        android:layout_marginBottom="?attr/actionBarSize"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="1.0"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintVertical_bias="1.0" />

    <fragment
        android:id="@+id/fragment"
        android:name="androidx.navigation.fragment.NavHostFragment"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_marginTop="1000dp"
        android:layout_marginBottom="56dp"
        app:defaultNavHost="true"
        app:flow_horizontalAlign="center"
        app:flow_verticalAlign="center"
        app:navGraph="@navigation/my_nav"
        tools:layout_editor_absoluteX="-27dp"
        tools:layout_editor_absoluteY="278dp">
    </fragment>
</RelativeLayout>

你能 post 整个 activity 的 XML 吗?我想看看哪些视图是哪个视图的子视图,哪些视图是哪个视图的父视图。

我不太清楚你为什么要让它透明。无论如何,这个问题通常是因为底部导航栏下没有nothing。换句话说,它只涵盖 activity 的实际背景。我也不确定你是否希望导航栏浮动在 recyclerview 上。

尝试让 recyclerview 的下约束到达屏幕的下边缘。

试试这个代码;

BottomNavigationView navView = findViewById(R.id.nav_view);
navView.setBackgroundColor(ContextCompat.getColor(getApplicationContext(), android.R.color.transparent));