BottomAppBar backgrounTint 与父级不正确匹配并显示在屏幕的一半

Posted

技术标签:

【中文标题】BottomAppBar backgrounTint 与父级不正确匹配并显示在屏幕的一半【英文标题】:BottomAppBar backgrounTint is not correctly match to parent and showing in half of screen 【发布时间】:2019-12-29 08:13:27 【问题描述】:

我尝试了我的布局代码,但 BottomAppBar 没有完美显示我到处搜索,但没有发现任何问题。

我在 android Studio 3.4 上试过这个,我的 gradle 依赖项是

dependencies 
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    //noinspection GradleCompatible
    implementation 'com.google.android.material:material:1.0.0-beta01'
    implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
    implementation 'androidx.legacy:legacy-support-v4:1.0.0-beta01'
    implementation 'androidx.vectordrawable:vectordrawable:1.0.0-beta01'
    implementation 'androidx.appcompat:appcompat:1.0.0-beta01'
    implementation 'androidx.lifecycle:lifecycle-extensions:2.0.0'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'androidx.test:runner:1.2.0'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
    implementation 'com.squareup.picasso:picasso:2.71828'
    annotationProcessor 'com.github.bumptech.glide:compiler:4.9.0'
    implementation 'com.github.bumptech.glide:glide:4.9.0'



我在 home_bottomappbar.xml 中使用的代码

<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_>
    <com.google.android.material.bottomappbar.BottomAppBar
            android:id="@+id/bottom_app_bar"
            android:layout_
            android:layout_
            android:layout_gravity="bottom"
            app:backgroundTint="@color/colorPrimaryDark"
            app:fabAlignmentMode="center"
            app:fabAttached="true"
            app:fabCradleDiameter="0dp"
            app:fabCradleVerticalOffset="10dp" />
     <com.google.android.material.floatingactionbutton.FloatingActionButton
            android:id="@+id/fab"
            android:layout_
            android:layout_
            app:layout_anchor="@id/bottom_app_bar"
            app:backgroundTint="@color/colorPrimary"/>
</androidx.coordinatorlayout.widget.CoordinatorLayout>

【问题讨论】:

如果有渲染问题,您可以添加截图,这将有助于协作者在不阅读整个帖子的情况下理解问题。 感谢您的回答,我已添加截图链接。请检查一下 【参考方案1】:

Coordinator 布局替换为RelativeLiner 布局。它会正常工作的。

【讨论】:

LinearLayout 或 Rellative 也不起作用。我不知道为什么该代码在这个项目中不起作用。它在我的其他项目中完美运行 避免在嵌套布局中使用coordinator 布局,您的coordinator 布局应该是父/根布局并设置布局锚点。【参考方案2】:

我也遇到过同样的问题

解决方案是将BottomAppBarwidth改为fill_parent,现在应该可以正常工作了:)

【讨论】:

以上是关于BottomAppBar backgrounTint 与父级不正确匹配并显示在屏幕的一半的主要内容,如果未能解决你的问题,请参考以下文章

如何在android中实现BottomAppBar?

如何在 BottomAppBar 的开始/左侧对齐 FAB

如何将 BottomAppBar + FAB 与 BottomNavigationView 结合使用

Android BottomAppBar 动态子菜单配置

BottomAppBar 和 FloatingActionButton 应用程序:layout_scrollFlags 行为

使用 BottomAppBar 材料设计组件的片段过渡