如何在android中实现BottomAppBar?
Posted
技术标签:
【中文标题】如何在android中实现BottomAppBar?【英文标题】:how to implement BottomAppBar in android? 【发布时间】:2020-12-28 23:06:46 【问题描述】:如何在android中实现BottomAppBar。
build.gradle
implementation 'com.google.android.material:material:1.0.0-beta01'
activity_main2.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_
android:layout_>
<!-- <FrameLayout-->
<!-- android:id="@+id/frames"-->
<!-- android:layout_-->
<!-- android:layout_ />-->
<com.google.android.material.bottomappbar.BottomAppBar
android:id="@+id/bottom_app_bar"
style="@style/Widget.MaterialComponents.BottomAppBar"
android:layout_
android:layout_
android:layout_gravity="bottom"
app:menu="@menu/bottom_app_bar" />
</androidx.coordinatorlayout.widget.CoordinatorLayout>
当我开始实现 BottomAppBar 然后在 xml 文件中给我这个错误:
当我运行应用程序时,强制停止应用程序并给出此错误:
E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.xxxx.xxxx, PID: 8698
java.lang.RuntimeException: Unable to start activity ComponentInfocom.xxxx.xxxx/com.xxxx.xxxx.Activity.HomeActivity: android.view.InflateException: Binary XML file line #14 in com.xxxx.xxxx:layout/activity_home2: Binary XML file line #14 in com.xxxx.xxxx:layout/activity_home2: Error inflating class com.google.android.material.bottomappbar.BottomAppBar
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3448)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3595)
at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:83)
at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2147)
at android.os.Handler.dispatchMessage(Handler.java:107)
at android.os.Looper.loop(Looper.java:237)
at android.app.ActivityThread.main(ActivityThread.java:7807)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1047)
Caused by: android.view.InflateException: Binary XML file line #14 in com.xxxx.xxxx:layout/activity_home2: Binary XML file line #14 in com.xxxx.xxxx:layout/activity_home2: Error inflating class com.google.android.material.bottomappbar.BottomAppBar
Caused by: android.view.InflateException: Binary XML file line #14 in com.xxxx.xxxx:layout/activity_home2: Error inflating class com.google.android.material.bottomappbar.BottomAppBar
【问题讨论】:
1.您是否通过运行此应用程序进行了测试? 2. 删除style
并再次检查。
是的,我运行应用程序但强制停止,我必须删除样式然后没有任何变化。
从日志中发布崩溃报告。
用1.0.0-beta01
代替1.2.1
@PratikButani 在我的 qus 中添加崩溃报告日志。
【参考方案1】:
这不是错误 - 只是 Android Studio 无法渲染视图,因为它不知道如何加载此视图。此外,您可以构建您的应用程序而不会出现任何错误。
如果您想让预览正常工作 - 请尝试在 Android Studio 的构建设置中单击 rebuild
。它应该有助于呈现预览。
【讨论】:
【参考方案2】:更新您的 MaterialComponents
主题<style name="AppTheme" parent="Theme.MaterialComponents.Light.DarkActionBar">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
</style>
最新版材质库给here
【讨论】:
以上是关于如何在android中实现BottomAppBar?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Xamarin.Android 中实现 RewardedAdLoadCallback?