【问题标题】:BottomNavigationView background color with opacity not working properly不透明度的BottomNavigationView背景颜色无法正常工作
【发布时间】:2020-03-16 09:55:21
【问题描述】:

我已经使用导航图实现了 BottomNavigationView。 在导航视图中将纯色设置为背景时,它工作正常,但是当我将背景颜色设置为不透明度时,它无法正常工作。

这是我的 gradle 文件:

implementation 'androidx.navigation:navigation-fragment-ktx:2.2.1'
implementation 'androidx.navigation:navigation-ui-ktx:2.2.1'

导航.xml

    <?xml version="1.0" encoding="utf-8"?>
<navigation xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/bottom_nav"
    app:startDestination="@id/firstBottomNavFragment">

    <fragment
        android:id="@+id/firstBottomNavFragment"
        android:name="com.healthymale.screens.home.fragment.HomeFragment"
        android:label="@string/home" />
    <fragment
        android:id="@+id/secondBottomNavFragment"
        android:name="com.healthymale.screens.home.fragment.ProgramsFragment"
        android:label="@string/programs" />
    <fragment
        android:id="@+id/thirdBottomNavFragment"
        android:name="com.healthymale.screens.home.fragment.TrackingFragment"
        android:label="@string/tracking" />

    <fragment
        android:id="@+id/fourBottomNavFragment"
        android:name="com.healthymale.screens.home.fragment.MoreFragment"
        android:label="@string/more" />

</navigation>

我的主屏幕 xml:

<layout 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"
    tools:context=".screens.home.HomeScreen">

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


        <fragment
            android:id="@+id/nav_host_fragment"
            android:name="androidx.navigation.fragment.NavHostFragment"
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:layout_weight="1"
            app:defaultNavHost="true"
            app:navGraph="@navigation/navigation" />

        <com.google.android.material.bottomnavigation.BottomNavigationView
            android:id="@+id/bottom_nav_view"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="@color/black_5"
            app:labelVisibilityMode="labeled"
            app:menu="@menu/menu" />
    </LinearLayout>
</layout>

【问题讨论】:

    标签: android bottomnavigationview android-navigation-graph android-components


    【解决方案1】:

    您可以使用任何可绘制文件作为背景,因此它还有助于代码的可重用性,最重要的是,您还可以在应用编译后更改它,就像我们在主题更改中使用的那样

    【讨论】:

    • 我们可以用这种方法改变主题颜色吗?
    【解决方案2】:

    我正在使用此代码设置导航视图的透明背景。您可以更改颜色并使用:

    navView.setBackgroundColor(ContextCompat.getColor(getApplicationContext(), android.R.color.transparent));
    

    【讨论】:

      【解决方案3】:

      任何希望导航栏透明且可点击的人

      android:background="?android:attr/windowBackground"
      

      android:background="?android:selectableItemBackground"
      

      尝试上述方法之一

      【讨论】:

        猜你喜欢
        • 2013-02-05
        • 2019-01-05
        • 2020-08-02
        • 2015-02-10
        • 1970-01-01
        • 2017-08-11
        • 2023-02-09
        • 2014-03-22
        • 1970-01-01
        相关资源
        最近更新 更多