Android中FloatingActionButton实现悬浮按钮实例
发布时间 - 2026-01-11 00:49:09 点击率:次Android中FloatingActionButton(悬浮按钮) 使用不是特别多,常规性APP应用中很少使用该控件. 当然他的使用方法其实很简单.直接上代码:

xml:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent">
<CheckBox
android:id="@+id/cbDelay"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:layout_marginTop="10dp"
android:text="delay" />
<RelativeLayout
android:id="@+id/rlAddBill"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentStart="true"
android:layout_below="@+id/fab01Add"
android:layout_marginLeft="10dp"
android:background="#00000000"
android:visibility="gone">
<LinearLayout
android:id="@+id/ll01"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentStart="true"
android:layout_below="@+id/ll02"
android:orientation="horizontal">
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_toLeftOf="@+id/miniFab01"
android:layout_weight="1"
android:gravity="right"
android:paddingBottom="5dp"
android:text="销售单"
android:textColor="@android:color/white"
android:textSize="15sp"
android:visibility="gone" />
<android.support.design.widget.FloatingActionButton
android:id="@+id/miniFab01"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="25dp"
android:src="@mipmap/btn_play_normal"
app:backgroundTint="@color/colorAccent"
app:elevation="5dp"
app:fabSize="mini" />
</LinearLayout>
<LinearLayout
android:id="@+id/ll02"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentStart="true"
android:layout_below="@+id/ll03"
android:orientation="horizontal">
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_toLeftOf="@+id/miniFab02"
android:layout_weight="1"
android:gravity="right"
android:paddingBottom="5dp"
android:text="销售退货"
android:textColor="@android:color/white"
android:textSize="15sp"
android:visibility="gone" />
<android.support.design.widget.FloatingActionButton
android:id="@+id/miniFab02"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="25dp"
android:src="@mipmap/btn_play_normal"
app:backgroundTint="@color/colorAccent"
app:elevation="5dp"
app:fabSize="mini" />
</LinearLayout>
<LinearLayout
android:id="@+id/ll03"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentStart="true"
android:layout_alignParentTop="true"
android:orientation="horizontal">
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_toLeftOf="@+id/miniFab02"
android:layout_weight="1"
android:gravity="right"
android:paddingBottom="5dp"
android:text="收款单"
android:textColor="@android:color/white"
android:textSize="15sp"
android:visibility="gone" />
<android.support.design.widget.FloatingActionButton
android:id="@+id/miniFab03"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="25dp"
android:src="@mipmap/btn_play_normal"
app:backgroundTint="@color/colorAccent"
app:elevation="5dp"
app:fabSize="mini" />
</LinearLayout>
</RelativeLayout>
<android.support.design.widget.FloatingActionButton
android:id="@+id/fab01Add"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentStart="true"
android:layout_below="@+id/cbDelay"
android:layout_marginRight="15dp"
android:layout_marginTop="22dp"
android:src="@mipmap/btn_play_normal"
app:backgroundTint="#31bfcf"
app:elevation="5dp"
app:fabSize="normal"
app:rippleColor="#e7d161" />
</RelativeLayout>
MainActivity:
package com.example.liupanpan.floatingactionbuttondemo;
import android.animation.AnimatorInflater;
import android.animation.AnimatorSet;
import android.os.Bundle;
import android.support.design.widget.FloatingActionButton;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.CheckBox;
import android.widget.LinearLayout;
import android.widget.RelativeLayout;
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
private CheckBox cbDelay;
private FloatingActionButton fab01Add;
private boolean isAdd = false;
private RelativeLayout rlAddBill;
private int[] llId = new int[]{R.id.ll01, R.id.ll02, R.id.ll03};
private LinearLayout[] ll = new LinearLayout[llId.length];
private int[] fabId = new int[]{R.id.miniFab01, R.id.miniFab02, R.id.miniFab03};
private FloatingActionButton[] fab = new FloatingActionButton[fabId.length];
private AnimatorSet addBillTranslate1;
private AnimatorSet addBillTranslate2;
private AnimatorSet addBillTranslate3;
private AnimatorSet addBillTranslate4;
private AnimatorSet addBillTranslate5;
private AnimatorSet addBillTranslate6;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.basic_fab_activity);
initView();
setDefaultValues();
bindEvents();
}
private void initView() {
cbDelay = (CheckBox) findViewById(R.id.cbDelay);
fab01Add = (FloatingActionButton) findViewById(R.id.fab01Add);
rlAddBill = (RelativeLayout) findViewById(R.id.rlAddBill);
for (int i = 0; i < llId.length; i++) {
ll[i] = (LinearLayout) findViewById(llId[i]);
}
for (int i = 0; i < fabId.length; i++) {
fab[i] = (FloatingActionButton) findViewById(fabId[i]);
}
}
private void setDefaultValues() {
addBillTranslate1 = (AnimatorSet) AnimatorInflater.loadAnimator(this, R.animator.add_bill_anim);
addBillTranslate2 = (AnimatorSet) AnimatorInflater.loadAnimator(this, R.animator.add_bill_anim);
addBillTranslate3 = (AnimatorSet) AnimatorInflater.loadAnimator(this, R.animator.add_bill_anim);
// addBillTranslate4 = (AnimatorSet) AnimatorInflater.loadAnimator(this, R.animator.add_bill_anim);
// addBillTranslate5 = (AnimatorSet) AnimatorInflater.loadAnimator(this, R.animator.add_bill_anim);
// addBillTranslate6 = (AnimatorSet) AnimatorInflater.loadAnimator(this, R.animator.add_bill_anim);
}
private void bindEvents() {
fab01Add.setOnClickListener(this);
for (int i = 0; i < fabId.length; i++) {
fab[i].setOnClickListener(this);
}
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.fab01Add:
fab01Add.setImageResource(isAdd ? R.mipmap.ic_launcher_round : R.mipmap.ic_launcher_round);
isAdd = !isAdd;
rlAddBill.setVisibility(isAdd ? View.VISIBLE : View.GONE);
if (isAdd) {
addBillTranslate1.setTarget(ll[0]);
addBillTranslate1.start();
addBillTranslate2.setTarget(ll[1]);
addBillTranslate2.setStartDelay(cbDelay.isChecked() ? 50 : 0);
addBillTranslate2.start();
addBillTranslate3.setTarget(ll[2]);
addBillTranslate3.setStartDelay(cbDelay.isChecked() ? 100 : 0);
addBillTranslate3.start();
// addBillTranslate4.setTarget(ll[3]);
// addBillTranslate4.setStartDelay(cbDelay.isChecked() ? 250 : 0);
// addBillTranslate4.start();
// addBillTranslate5.setTarget(ll[4]);
// addBillTranslate5.setStartDelay(cbDelay.isChecked() ? 300 : 0);
// addBillTranslate5.start();
// addBillTranslate6.setTarget(ll[5]);
// addBillTranslate6.setStartDelay(cbDelay.isChecked() ? 350 : 0);
// addBillTranslate6.start();
}
break;
case R.id.miniFab01:
hideFABMenu();
break;
case R.id.miniFab02:
hideFABMenu();
break;
case R.id.miniFab03:
hideFABMenu();
break;
default:
break;
}
}
private void hideFABMenu() {
rlAddBill.setVisibility(View.GONE);
fab01Add.setImageResource(R.mipmap.ic_launcher_round);
isAdd = false;
}
}
运行程序,就可以实现当前的效果.问题XML的图片请自己替换一下,demo就不上传了.
效果如下:
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
# android悬浮按钮
# 安卓悬浮按钮的实现
# android
# 悬浮按钮菜单
# Android开发之FloatingActionButton悬浮按钮基本使用、字体、颜色用法示例
# Android自定义可拖拽的悬浮按钮DragFloatingActionButton
# Android 中FloatingActionButton(悬浮按钮)实例详解
# Android仿知乎悬浮功能按钮FloatingActionButton效果
# Android悬浮按钮点击返回顶部FloatingActionButton
# Android开发悬浮按钮 Floating ActionButton的实现方法
# Android实现悬浮可拖拽的Button
# 不上
# 传了
# 大家多多
# 就可以
# 其实很简单
# gravity
# center_vertical
# layout_weight
# layout_toLeftOf
# white
# textSize
# color
# paddingBottom
# textColor
# LinearLayout
# visibility
# background
# TextView
# layout_gravity
# horizontal
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
企业网站制作这些问题要关注
如何在Windows环境下新建FTP站点并设置权限?
香港服务器WordPress建站指南:SEO优化与高效部署策略
Laravel如何配置和使用队列处理异步任务_Laravel队列驱动与任务分发实例
Laravel如何配置.env文件管理环境变量_Laravel环境变量使用与安全管理
如何用PHP工具快速搭建高效网站?
深圳网站制作培训,深圳哪些招聘网站比较好?
Laravel路由怎么定义_Laravel核心路由系统完全入门指南
Laravel如何实现RSS订阅源功能_Laravel动态生成网站XML格式订阅内容【教程】
在线制作视频网站免费,都有哪些好的动漫网站?
Laravel如何配置任务调度?(Cron Job示例)
焦点电影公司作品,电影焦点结局是什么?
Laravel如何处理JSON字段_Eloquent原生JSON字段类型操作教程
浅谈Javascript中的Label语句
大连网站制作费用,大连新青年网站,五年四班里的视频怎样下载啊?
如何用AI帮你把自己的生活经历写成一个有趣的故事?
利用 Google AI 进行 YouTube 视频 SEO 描述优化
独立制作一个网站多少钱,建立网站需要花多少钱?
Laravel怎么使用Intervention Image库处理图片上传和缩放
Windows10如何更改计算机工作组_Win10系统属性修改Workgroup
Laravel Eloquent关联是什么_Laravel模型一对一与一对多关系精讲
Laravel如何实现图片防盗链功能_Laravel中间件验证Referer来源请求【方案】
如何用5美元大硬盘VPS安全高效搭建个人网站?
标题:Vue + Vuex + JWT 身份认证的正确实践与常见误区解析
专业商城网站制作公司有哪些,pi商城官网是哪个?
网站制作公司哪里好做,成都网站制作公司哪家做得比较好,更正规?
Laravel如何创建自定义中间件?(Middleware代码示例)
文字头像制作网站推荐软件,醒图能自动配文字吗?
js实现获取鼠标当前的位置
javascript中的try catch异常捕获机制用法分析
微信公众帐号开发教程之图文消息全攻略
javascript如何操作浏览器历史记录_怎样实现无刷新导航
如何选择可靠的免备案建站服务器?
新三国志曹操传主线渭水交兵攻略
JS中页面与页面之间超链接跳转中文乱码问题的解决办法
Laravel的Blade指令怎么自定义_创建你自己的Laravel Blade Directives
Laravel如何配置Horizon来管理队列?(安装和使用)
猎豹浏览器开发者工具怎么打开 猎豹浏览器F12调试工具使用【前端必备】
SQL查询语句优化的实用方法总结
Laravel怎么配置自定义表前缀_Laravel数据库迁移与Eloquent表名映射【步骤】
如何使用 jQuery 正确渲染 Instagram 风格的标签列表
linux top下的 minerd 木马清除方法
详解jQuery中基本的动画方法
网站制作企业,网站的banner和导航栏是指什么?
JavaScript如何实现路由_前端路由原理是什么
简单实现Android文件上传
如何用AI一键生成爆款短视频文案?小红书AI文案写作指令【教程】
佐糖AI抠图怎样调整抠图精度_佐糖AI精度调整与放大细化操作【攻略】
Laravel如何安装Breeze扩展包_Laravel用户注册登录功能快速实现【流程】
今日头条AI怎样推荐抢票工具_今日头条AI抢票工具推荐算法与筛选【技巧】

