如何在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?的主要内容,如果未能解决你的问题,请参考以下文章

如何在android中实现svm模型?

如何在 Xamarin.Android 中实现 RewardedAdLoadCallback?

如何在 Android Studio 中实现 razorpay 定期付款?

如何在Android View中实现这种布局配置

如何在 Android 应用程序中实现应用内计费?

如何在 Android Studio 的登录活动模板中实现 AsyncTask