作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在尝试实现通常如下所示的新 BottomAppBar: material BottomAppBar作为谷歌家庭应用程序中的 BottomNavigationView,看起来像 this .
我的问题是,因为我只能用菜单资源填充 BottomAppBar,所以我不明白如何对齐我的按钮以使其看起来像 BottomNavigationView(但 Fab 按钮有“剪切”)而不是对齐所有内容到 BottomAppBar 的一侧。
如何在这个新的 Material BottomAppBar 中添加自定义布局?
或者,有没有什么方法可以通过 Fab 按钮的“剪切”来实现 BottomNavigationView(保持很酷的默认动画,如新的 BottomAppBar)?
最佳答案
已解决
基本上,我没有尝试将菜单资源强制到我需要的布局,而是使用了这个解决方案,我只是按照@dglozano 的建议,使用“空”元素在 BottomAppBar 中放置了一个 LinearLayout。
使用 ?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:contentInsetEnd="16dp"
app:contentInsetStart="16dp"
app:backgroundTint="@color/colorPrimary">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:weightSum="5">
<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 BottomAppBar 实现为 BottomNavigationView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53682200/
我是一名优秀的程序员,十分优秀!