【问题标题】:Android : Add rounded corners to BottomAppBar with circular anchored FABAndroid:使用圆形锚定 FAB 向 BottomAppBar 添加圆角
【发布时间】:2020-05-16 13:22:18
【问题描述】:

我想实现类似于这个视图的东西,底部导航,左上角和右上角圆角半径和一个锚定的 FAB

【问题讨论】:

  • 对于带圆角的 BottomAppBar,请查看answer
  • @GabrieleMariotti,谢谢你的回答,我可以单独实现左上角和右上角的半径,我也可以实现锚定按钮,但我不能将两者结合在一起,因为它们是相反的其他。
  • 为什么它们是相反的?可以发一下代码吗?
  • 这个想法是,如果你想要圆角半径,你可以将具有右上角和左角半径的自定义形状添加到底部导航视图组件,如果你将它添加到应用程序底部栏组件,它将隐藏应用栏组件的边距,用于绘制 fab 按钮的锚点,因此我可以选择 2 个选项之一。

标签: android bottomnavigationview custom-view android-bottomnav android-bottomappbar


【解决方案1】:

您可以使用标准的BottomAppBar

   <com.google.android.material.bottomappbar.BottomAppBar
        android:layout_margin="xxdp"
        app:fabAlignmentMode="center"
        app:fabCradleRoundedCornerRadius="2dp"
        app:fabCradleVerticalOffset="8dp"
        app:fabCradleMargin="8dp" />

然后改ShapeAppearanceModel:

    BottomAppBar bottomAppBar = findViewById(R.id.bottomAppBar);
    MaterialShapeDrawable bottomBarBackground = (MaterialShapeDrawable) bottomAppBar.getBackground();
    bottomBarBackground.setShapeAppearanceModel(
            bottomBarBackground.getShapeAppearanceModel()
                    .toBuilder()
                    .setAllCorners(new RoundedCornerTreatment()).setAllCornerSizes(new RelativeCornerSize(0.5f))
                    .build());

关于新的RelativeCornerSize(0.5f) 的注释:它在1.2.0-beta01 中发生了变化。之前是new RelativeCornerSize(50)

【讨论】:

  • 谢谢,会试试你的解决方案
猜你喜欢
  • 2020-05-25
  • 1970-01-01
  • 1970-01-01
  • 2015-11-02
  • 2013-04-10
  • 1970-01-01
  • 2021-10-31
  • 2011-04-15
  • 1970-01-01
相关资源
最近更新 更多