如何将bottomAppBar放置在布局中

最是人间留不住,朱颜辞镜花辞树。这篇文章主要讲述如何将bottomAppBar放置在布局中相关的知识,希望能为你提供帮助。
我目前正在开发一个使用底部应用栏作为主导航的项目。但即使我从示例源代码中复制粘贴,我总是会收到错误
这是我的布局文件

< ?xml version="1.0" encoding="utf-8"?> < LinearLayout 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" android:orientation="vertical" tools:context=".MainActivity"> < androidx.coordinatorlayout.widget.CoordinatorLayout android:layout_width="match_parent" android:layout_height="match_parent"> < com.google.android.material.bottomappbar.BottomAppBar android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_gravity="bottom"> < /com.google.android.material.bottomappbar.BottomAppBar> < /androidx.coordinatorlayout.widget.CoordinatorLayout> < /LinearLayout>

这是我的gradle依赖项
dependencies { implementation fileTree(dir: 'libs', include: ['*.jar']) implementation 'androidx.appcompat:appcompat:1.0.2' implementation 'androidx.constraintlayout:constraintlayout:1.1.3' implementation 'androidx.legacy:legacy-support-v4:1.0.0' testImplementation 'junit:junit:4.12' implementation 'com.google.android.material:material:1.1.0-alpha05' implementation 'com.squareup.okhttp3:okhttp:3.10.0' androidTestImplementation 'androidx.test:runner:1.1.1' androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.1' }

这是我得到的错误
Binary XML file line #14: Binary XML file line #14: Error inflating class com.google.android.material.bottomappbar.BottomAppBar

答案【如何将bottomAppBar放置在布局中】根据this网站:将targetSdkVersion设置为针对Android P的最新API版本,即28,并确保您的应用继承Theme.MaterialComponents主题,以使BottomAppBar使用最新的样式。或者,您可以在布局xml文件中的窗口小部件声明中声明BottomAppBar的样式,如下所示:style="@style/Widget.MaterialComponents.BottomAppBar"
另一答案我最近解决了这个问题。你需要添加依赖性
implementation 'com.google.android.material:material:1.0.0

然后将< com.google.android.material.bottomnavigation.BottomNavigationView添加到XML布局文件中。
它对我有用
< ?xml version="1.0" encoding="utf-8"?> < 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:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> < com.google.android.material.bottomnavigation.BottomNavigationView android:layout_width="0dp" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintBottom_toBottomOf="parent" android:layout_height="wrap_content" android:id="@+id/vBottomBar" app:layout_constraintHorizontal_bias="0.0"/> < FrameLayout android:layout_width="0dp" android:layout_height="0dp" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" app:layout_constraintBottom_toTopOf="@+id/vBottomBar" android:id="@+id/vContainer"> < /FrameLayout> < /androidx.constraintlayout.widget.ConstraintLayout>

另一答案昨晚我找到了问题的解决方案。我的问题是我用的
implementation 'com.google.android.material:material:1.1.0-alpha05'

而且那个版本仍然是alpha并且不稳定。所以我把它降级为
implementation 'com.google.android.material:material:1.0.0'

一切都像黄油一样顺畅

    推荐阅读