当前位置: 首页 > 知识库问答 >
问题:

Android:垂直扩展浮动操作按钮

佟嘉祯
2023-03-14

有没有办法使用材料设计支持库在android应用程序中实现这样的功能 https://github.com/futuresimple/android-floating-action-button/raw/master/screenshots/menu.gif。我不想使用任何第三方库来实现此功能

共有3个答案

张权
2023-03-14

实现这一点的最快和最简单的方法是使用Animate(). transationY(int x)函数,您可以使用函数Animate(). transationY(int x)垂直对Floating Action按钮进行动画处理

如果您正在寻找kotlin中的代码,您可以在我的github repo动画-FAB中看到代码

在编写代码之前,将xml设置为浮动操作按钮应相互重叠,以便只能看到一个FAB:activity_main.xml

<?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_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">

<com.google.android.material.appbar.AppBarLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:theme="@style/AppTheme.AppBarOverlay">

    <androidx.appcompat.widget.Toolbar
        android:id="@+id/toolbar"
        android:layout_width="match_parent"
        android:layout_height="?attr/actionBarSize"
        android:background="?attr/colorPrimary"
        app:popupTheme="@style/AppTheme.PopupOverlay" />

</com.google.android.material.appbar.AppBarLayout>

<include layout="@layout/content_main" />

<com.google.android.material.floatingactionbutton.FloatingActionButton
    android:id="@+id/fab1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginLeft="10dp"
    app:fabSize="mini"
    app:srcCompat="@android:drawable/ic_dialog_email" />

<com.google.android.material.floatingactionbutton.FloatingActionButton
    android:id="@+id/fab2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginLeft="10dp"
    app:fabSize="mini"
    app:srcCompat="@android:drawable/ic_dialog_map" />

<com.google.android.material.floatingactionbutton.FloatingActionButton
    android:id="@+id/fab3"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginLeft="10dp"
    android:tint="@android:color/white"
    app:fabSize="mini"
    app:srcCompat="@android:drawable/ic_btn_speak_now" />

<com.google.android.material.floatingactionbutton.FloatingActionButton
    android:id="@+id/fab"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="bottom|end"
    android:layout_margin="@dimen/fab_margin"
    android:gravity="center_vertical"
    app:srcCompat="@android:drawable/ic_dialog_info" />

</androidx.coordinatorlayout.widget.CoordinatorLayout>

现在跳到<code>main活动。javacode您可以使用两个函数来扩展晶圆厂和折叠晶圆厂,如下所示:

 private void expendFABMenu(){
    fab1.animate().translationY(- 
    getResources().getDimension(R.dimen.standard_55));
    fab2.animate().translationY(- 
    getResources().getDimension(R.dimen.standard_105));
    fab3.animate().translationY(- 
    getResources().getDimension(R.dimen.standard_155));
}

private void collapseFABMenu(){
    isFABOpen=false;
    fab1.animate().translationY(0);
    fab2.animate().translationY(0);
    fab3.animate().translationY(0);
}

现在只需在您想要展开和折叠的FAB上添加click listener。

    fab.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
        if(isFABExpened) {
            isFABExpened = false;
            collapseFABMenu();
        } else {
            isFABExpened = true;
            expendFABMenu();
        }
    }
});

这不是很简单吗?您可以在我的github存储库中查看完整的java代码。如果您正在寻找kotlin中的代码,您可以查看我的其他github repo动画制作工厂。

许昆
2023-03-14

它可以通过在您的布局中定义多个FABs来实现,除了一个(根FAB)之外的所有FABs最初都是隐藏的。然后添加逻辑以在单击根fab时显示隐藏的FABs。为了给用户一种温暖的模糊感觉,请在混合中添加一些动画。它并不像公认的答案所暗示的那样复杂。

这是一个关于如何做的很好的教程

郤令
2023-03-14

目前,快速简便地实现这一点的唯一方法是使用第三方库。

是的,可以使用设计库中提供的浮动按钮来完成,这将是一个很大的工作量。

我已经使用上述库很长时间了,根本没有任何问题。在我看来,最好使用第三方库并快速入门,并更多地关注核心应用逻辑。

如果你愿意,我可以给你更多图书馆的链接。

希望对你有帮助。

更新

1)快速浮动按钮(链接)

2)浮动动作按钮(链接)

3)浮动动作按钮(链接)

4)Android浮动操作按钮(链接)-这是我正在使用的按钮。我需要修改和添加一些我自己的方法来支持我的应用程序需求。

谢谢。

 类似资料:
  • 现在Android设计支持库已经推出,有没有人知道如何用它实现扩展的Fab菜单,比如收件箱上的Fab应用程序? 应该是这样的:

  • 问题内容: Google是否已经为该新的圆形FAB按钮发布了已定义的样式或组件,还是我应该自己实施设计? 该按钮的说明如下:Google设计| 浮动动作按钮 问题答案: 更新 :现在有一个供FAB使用的官方小部件:FloatingActionButton,有关完整信息,请参阅Gabriele Mariotti的回复。 根据Adam Powell和Chet Haase的说法,他们没有为FAB按钮创建

  • Floating Action Button is supported only in Material Theme Floating action buttons are used for a promoted action. They are distinguished by a circled icon floating above the UI and have motion behavi

  • 我的应用程序出现了这个错误

  • 问题内容: 我一直在尝试更改Material的“浮动动作按钮”的颜色,但没有成功。 我尝试添加: 或通过代码: 要么 但以上方法均无效。我也尝试过提出的重复问题中的解决方案,但是没有一个起作用。按钮保持绿色,并且也变成了正方形。 PS知道如何添加波纹效果也很高兴,也无法理解。 问题答案: 如文档中所述,默认情况下,它采用在styles.xml属性colorAccent中设置的颜色。 该视图的背景色

  • 我 https://github.com/futuresimple/android-floating-action-button 使用了这个库。如何更改主按钮的图像?我想在选择其中一个较小的按钮后立即更改按钮图像。