Android底部应用栏带有特定FAB曲线位置
创始人
2024-10-07 12:34:02
0
  1. 在 XML 布局文件中添加 BottomAppBar 和 FloatingActionButton。



  1. 在 Activity 或 Fragment 中设置 BottomAppBar 和 FloatingActionButton。
BottomAppBar bottomAppBar = findViewById(R.id.bottom_app_bar);
setSupportActionBar(bottomAppBar);
    
FloatingActionButton fab = findViewById(R.id.fab);
fab.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
        // FAB 点击事件
    }
});
  1. 自定义 FAB 的曲线位置。
public class CustomBottomAppBar extends BottomAppBar {

    public CustomBottomAppBar(Context context) {
        super(context);
        init();
    }

    public CustomBottomAppBar(Context context, AttributeSet attrs) {
        super(context, attrs);
        init();
    }

    public CustomBottomAppBar(Context context, AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
        init();
    }

    private void init() {
        float fabRadius = getResources().getDimension(R.dimen.fab_size) / 2f;
        float cradleVerticalOffset = getResources().getDimension(R.dimen.bottom_app_bar_cradle_vertical_offset);
        float cradleWidth = getResources().getDimension(R.dimen.bottom_app_bar_cradle_width);
        float fabVerticalOffset = getResources().getDimension(R.dimen.fab_vertical_offset);
    
        CurveTopEdgeTreatment curveTopEdgeTreatment = new CurveTopEdgeTreatment(
                fabRadius,
                cradleVerticalOffset,
                cradleWidth,
                fabVerticalOffset
        );
    
        MaterialShapeDrawable materialShapeDrawable = getMaterialShapeDrawable();
        if (materialShapeDrawable != null) {
            materialShapeDrawable.setShapeAppearanceModel(
                    materialShapeDrawable.getShapeAppearanceModel()
                            .toBuilder()
                            .setTopEdge(curveTopEdgeTreatment)
                            .build()
            );
        }
    }
}
  1. 在 XML 布局文件中使用自定义的 BottomAppBar。

相关内容

热门资讯

透视免费!wepoker辅助器... 透视免费!wepoker辅助器,约局吧辅助脚本,妙计教程(有挂技巧)-哔哩哔哩1、约局吧辅助脚本ai...
透视肯定!aapoker脚本怎... 透视肯定!aapoker脚本怎么用,wpk辅助,秘籍教程(有挂秘诀)-哔哩哔哩1、游戏颠覆性的策略玩...
透视私人局!德普之星怎么开辅助... 透视私人局!德普之星怎么开辅助,xpoker怎么辅助,烘培教程(有挂秘籍)-哔哩哔哩运德普之星怎么开...
透视黑科技!wepoker黑侠... 透视黑科技!wepoker黑侠辅助器,有没有人wepoker,课程教程(有挂教学)-哔哩哔哩1、进入...
透视中牌率!aapoker辅助... 透视中牌率!aapoker辅助插件工具,wepokerplus万能挂,诀窍教程(确实有挂)-哔哩哔哩...
透视玄学!wepoker智能辅... 透视玄学!wepoker智能辅助插件,有哪些免费的wpk辅助码,举措教程(有挂实锤)-哔哩哔哩暗藏猫...
透视玄学!wepoker有脚本... 透视玄学!wepoker有脚本吗,约局吧德州透视,诀窍教程(有挂技术)-哔哩哔哩在进入约局吧德州透视...
透视能赢!德普之星app安卓版... 透视能赢!德普之星app安卓版破解版,wepoker私局代打,方针教程(有挂秘诀)-哔哩哔哩德普之星...
透视软件!aapoker破解侠... 透视软件!aapoker破解侠是真的吗,wepoker私人局规律,总结教程(有挂方式)-哔哩哔哩1、...
透视最新!德普之星私人局辅助器... 您好,德普之星私人局辅助器这款游戏可以开挂的,确实是有挂的,需要了解加去威信【136704302】很...