java如何使用真正的浮动操作按钮(FAB)扩展?
为了消除关于复制的任何疑问或想法:onMaterial Design定义为什么是“扩展”
但大多数人将“扩展”与“Type of Transition: Speed Dial”混淆,这使得很难找到解决方案。像here
问题 因此,我期待的是如何设置文本和扩展大小的晶圆厂
今天我的代码是这样的:
<安卓.support.design.widget.FloatingActionButton
安卓:id="@+id/maps_main_distance_btn"
安卓:layout_width="0dp"
安卓:layout_height="wrap_content"
安卓:layout_marginBottom="8dp"
安卓:text="@string/str_distance_btn"
app:elevation="0dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" />
但我的按钮是这样的:
没有文本,也没有正确的格式。我在约束布局中使用它
# 1 楼答案
你可以用this library来做这件事。(我用了另一种方式) 但我使用FancyButton在协调器布局中创建了一个圆形的、很棒的按钮,如下所示:
结果是:
里面可以有图标(参见FancyButton)
在
app:layout_behavior="@string/fab_transformation_sheet_behavior"
中,它的作用类似于fab,如下所示:祝你好运
# 2 楼答案
可以创建一个实用程序类,使用
ConstraintLayout
将MaterialButton
动画化为扩展FloatingActionButton
。首先需要用xml声明MaterialButton
的两个状态,然后使用TransitionManager
在它们之间设置动画你可以阅读一篇关于它的中篇文章here,同时,我会在这里添加一些相关的代码
崩溃的晶圆厂状态:
扩展晶圆厂状态:
背景可绘制:
以及相关的Java扩展代码:
# 3 楼答案
在xml文件中:
# 4 楼答案
简单的回答是:将背景设置为带圆角的矩形,而不是椭圆形。然后将半径的尺寸设置为按钮高度的一半
我是如何做到的:
可绘制/btn_背景_扩展。xml: