其他分享
首页 > 其他分享> > android – 如何将新材料BottomAppBar实现为BottomNavigationView

android – 如何将新材料BottomAppBar实现为BottomNavigationView

作者:互联网

我试图实现通常如下所示的新BottomAppBar:
material BottomAppBar作为BottomNavigationView,就像在谷歌主页应用程序中看起来像this.

我的问题是因为我只能用菜单资源填充BottomAppBar,我无法理解如何将我的按钮对齐看起来像BottomNavigationView(但是使用Fab按钮的“cut”)而不是将所有内容对齐到一边BottomAppBar.

如何在这个新的Material BottomAppBar中添加自定义布局?

或者,有没有办法实现BottomNavigationView与Fab按钮的“剪切”(保持酷的默认动画,如新的BottomAppBar)?

解决方法:

解决了

基本上,我没有尝试强制菜单资源到我需要的布局,而是使用了这个解决方案,我只是使用@dglozano建议的“empty”元素将LinearLayout放在BottomAppBar中.

使用?attr / selectableItemBackgroundBorderless我也能够实现与BottomNavigationView非常相似的效果.

<com.google.android.material.bottomappbar.BottomAppBar
    android:id="@+id/bar"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_gravity="bottom"
    android:gravity="center"
    app:layout_anchorGravity="start"
    app:hideOnScroll="true"
    app:fabAnimationMode="scale"
    app:fabAlignmentMode="center"
    app:backgroundTint="@color/colorPrimary">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:weightSum="5"
        android:paddingEnd="16dp">
        <ImageButton
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            app:srcCompat="@drawable/ic_home_white_24dp"
            android:background="?attr/selectableItemBackgroundBorderless"
            android:tint="@color/secondary_text"/>
        <ImageButton
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            app:srcCompat="@drawable/ic_map_black_24dp"
            android:background="?attr/selectableItemBackgroundBorderless"/>
        <ImageButton
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:background="@android:color/transparent"/>
        <ImageButton
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            app:srcCompat="@drawable/ic_people_white_24dp"
            android:background="?attr/selectableItemBackgroundBorderless"/>
        <ImageButton
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            app:srcCompat="@drawable/ic_account_circle_24dp"
            android:background="?attr/selectableItemBackgroundBorderless"/>
    </LinearLayout>
</com.google.android.material.bottomappbar.BottomAppBar>

标签:android,material-design,android-appbarlayout,bottomnavigationview,android-bottom
来源: https://codeday.me/bug/20190622/1261488.html