java - 如何使 Android BottomNavigationView 背景透明?
问题描述
我一直在尝试使背景BottomNavigationView
透明,以便可以通过它看到背景,但是当我尝试以编程方式和通过 xml 设置具有 0% alpha 的背景颜色或具有相同的可绘制对象时,背景变成这样:
具有透明颜色的 BottomNavigationView 背景:
我希望背景完全透明,不像图片中显示的那样。
这是 BottomNavigationView 的 XML:
<com.google.android.material.bottomnavigation.BottomNavigationView
android:id="@+id/bottom_nav"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
app:layout_scrollFlags="scroll|enterAlways"
android:layout_gravity="bottom"
app:menu="@menu/bottom_nav"
android:background="#00000000"
app:itemBackground="#00000000"
app:itemIconTint="@color/hintcolor"
app:itemTextColor="@android:color/white"
app:itemHorizontalTranslationEnabled="false"/>
这是整个 XML 文件的代码:
<?xml version="1.0" encoding="utf-8"?>
<androidx.coordinatorlayout.widget.CoordinatorLayout 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=".NavigationDrawerActivity">
<com.google.android.material.appbar.AppBarLayout
android:id="@+id/appBarLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_scrollFlags="scroll|enterAlways"
android:theme="@style/AppTheme.AppBarOverlay">
<androidx.appcompat.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="?attr/colorPrimary"
app:titleTextColor="?attr/text"
app:layout_anchor="@+id/appBarLayout"
app:layout_anchorGravity="center"
app:popupTheme="@style/AppTheme.PopupOverlay" />
</com.google.android.material.appbar.AppBarLayout>
<include layout="@layout/content_navigation_drawer"/>
<com.google.android.material.bottomnavigation.BottomNavigationView
android:id="@+id/bottom_nav"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
app:layout_scrollFlags="scroll|enterAlways"
android:layout_gravity="bottom"
app:menu="@menu/bottom_nav"
android:background="#00000000"
app:itemBackground="#00000000"
app:itemIconTint="@color/hintcolor"
app:itemTextColor="@android:color/white"
app:itemHorizontalTranslationEnabled="false"/>
</androidx.coordinatorlayout.widget.CoordinatorLayout>
解决方案
标题后面的背景覆盖是因为底部导航栏的高度。要删除它,请添加此属性。
app:elevation="0dp"
android:alpha="0.5"
删除使视图透明的背景颜色。
android:background="#00000000"
你也可以试试
android:elevation="0dp"
推荐阅读
- java - 将 GoogleSheet 从 Google Driver 复制到 Dropbox
- apache-spark - Spark Coalesce:当错误地在参数中传递了更多分区值时
- mysql - 如何对不同表中的两列求和
- c++ - OpenFOAM 简单 blockMesh 浮点异常
- javascript - 如何在 js 数组映射中声明 typescript 类型?
- mongodb - 对 mongodb 集合中的字段进行字符串操作(聚合和正则表达式)
- clion - 重命名期间 CLion 会搜索系统#include 吗?
- python - 在 pandas 数据框中标记自定义 NER
- javascript - 如何使用javascript仅将字符串中的第一个字母大写?
- android - 如何在 Android 12 中禁用多窗口?