如何创建 Material Bottom App Bar 顶部阴影

Posted

技术标签:

【中文标题】如何创建 Material Bottom App Bar 顶部阴影【英文标题】:how to create a Material Bottom App Bar top Shadow 【发布时间】:2020-09-15 11:27:35 【问题描述】:

我正在尝试使用 com.google.material 库创建底部应用栏并成功创建,但问题是顶部的条形阴影或高度不适用。我搜索了过去 2 天,但没有找到任何关于我的问题的解决方案。我还会附上一张我想要底部应用栏设计的图片。请帮我解决这个问题我是android开发的新手。

`

<?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_
    tools:context=".activities.HomeActivity">
    <com.google.android.material.bottomappbar.BottomAppBar
        android:elevation="@dimen/dp10"
        android:id="@+id/bottom_app_bar"
        android:layout_
        android:layout_
        android:layout_gravity="bottom"
        app:backgroundTint="@android:color/white"
        android:fadingEdge="vertical"
        android:paddingEnd="53dp"
        android:paddingStart="53dp"
        >
        <RelativeLayout
            android:layout_
            android:layout_>
            <LinearLayout
                android:id="@+id/iconlayout"
                android:layout_centerVertical="true"
                android:layout_
                android:layout_>
                <LinearLayout
                    android:orientation="vertical"
                    android:layout_weight="1"
                    android:layout_
                    android:layout_>
                    <ImageView
                        android:id="@+id/home_icon"
                        android:src="@drawable/ic_home_active"
                        android:layout_
                        android:layout_></ImageView>
                    <!-- <ImageView
                         android:layout_marginRight="12dp"
                         android:id="@+id/bullets_img_home"
                         android:layout_marginTop="5dp"
                         android:src="@drawable/ic_blue_bullet"
                         android:layout_
                         android:layout_></ImageView>-->
                </LinearLayout>
                <LinearLayout
                    android:layout_gravity="center"
                    android:orientation="vertical"
                    android:layout_
                    android:layout_>
                    <ImageView
                        android:id="@+id/menu_icon"
                        android:src="@drawable/ic_menu_inactive"
                        android:layout_
                        android:layout_></ImageView>
                    <!-- <ImageView
                         android:visibility="gone"
                         android:id="@+id/bullets_img_menu"
                         android:layout_marginTop="5dp"
                         android:layout_gravity="center"
                         android:src="@drawable/ic_blue_bullet"
                         android:layout_
                         android:layout_></ImageView>-->
                </LinearLayout>

            </LinearLayout>
            <RelativeLayout
                android:animateLayoutChanges="true"
                android:id="@+id/view_layout"
                android:layout_marginTop="3dp"
                android:layout_below="@+id/iconlayout"
                android:layout_
                android:layout_>
                <RelativeLayout
                    android:background="@drawable/dotbtn"
                    android:layout_marginLeft="11dp"
                    android:layout_marginRight="12dp"
                    android:layout_alignParentStart="true"
                    android:id="@+id/bullets_img_menu"
                    android:layout_gravity="center"
                    android:layout_
                    android:layout_></RelativeLayout>
            </RelativeLayout>
        </RelativeLayout>
    </com.google.android.material.bottomappbar.BottomAppBar>
    <com.google.android.material.floatingactionbutton.FloatingActionButton
        android:id="@+id/fab"
        android:backgroundTint="@color/main_color"
        android:src="@drawable/plusicon"
        app:fabCustomSize="65dp"
        app:borderWidth="0dp"
        android:adjustViewBounds="true"
        android:layout_
        android:layout_
        app:layout_anchor="@id/bottom_app_bar" />
    <LinearLayout
        android:orientation="vertical"
        android:layout_
        android:layout_>

        <FrameLayout
            android:id="@+id/frame_container"
            android:layout_
            android:layout_
            android:layout_marginBottom="40dp"></FrameLayout>
    </LinearLayout>
</androidx.coordinatorlayout.widget.CoordinatorLayout>

这是我的布局代码 `

【问题讨论】:

【参考方案1】:

最后我找到了一个解决方案,我只需将我的 com.material.google 库版本更新为 实现 'com.google.android.material:material:1.3.0-alpha01' 及其完美展示 影子

【讨论】:

以上是关于如何创建 Material Bottom App Bar 顶部阴影的主要内容,如果未能解决你的问题,请参考以下文章

Material - 将指令传递给子组件

使用Material Design 创建App翻译系列----材料主题的使用(Using Material Theme)

无法从 Material UI 中的卡片内容中移除 padding-bottom

如何使用Material-UI创建此可滚动网格状视图?

Flutter:如何在 in_app_purchase 中调用 Apple pay bottom sheet?

Flutter:使用 Sliver 小部件时如何在滚动时隐藏 BottomAppBar?