苹果悬浮球下载滑动列表怎么自动靠边隐藏

悬浮球?只要这个就够了 - 简书
悬浮球?只要这个就够了
上次优化项目性能,最开始是放了一个 FPS 检测(一种卡顿的检测方式)通过 Label 的形式添加到了程序的主窗口上,后面一直没有移除掉,组长说太难看让我移除 (? ? ?) ,感觉 FPS 在界面上显示直观,对优化项目还是有很大帮助,能够快速定位到什么操作导致剧烈跳 FPS。为了不移除这个 FPS 检测,于是就顺便弄了个悬浮球,悬浮球源码和本文 Demo 地址见
因为悬浮球比较简单,但是博客还是要写的(讲道理感觉写博客真的很难写。。。),总结一下这次制作悬浮球主要遇到的一些问题和比较重要的东西。
一个 App 只会有且只会存在一个 keyWindow!默认创建并且启动的 App ,就会有个默认的 keyWindow,就是我们最频繁操作的那个窗口。其实我们是可以创建很多个 window 的,一个 window 显示的过程为,先 visable 然后成为 keyWindow。当一个 window 成为 keyWindow。上一个 keyWindow 就会 resign keyWindow,系统提供了 window 的三种 Level。
windowLevel
不添加任何自定义 window,系统默认的窗口为 UIWindowLevelNormal 级别,而状态栏为 UIWindowLevelStatusBar 级别,以及系统弹窗为 UIWindowLevelAlert 级别。所以设计一个全局的悬浮球,我便采用和系统状态栏以及 alertView 同样的思路,创建一个 window,将其 visable 并且成为 keywindow,所以全局悬浮球比较简单,直接将悬浮球添加到自定义的一个窗口上,这里我将自定义窗口的Level设成了下面所示,个人感觉如果是在app中使用的全局悬浮球,还是不要覆盖住系统状态栏好(其实感觉这个还得看具体需求,你也完全弄个 normal 级别的,然后成为 keyWindow 显示)。
self.window.windowLevel = UIWindowLevelStatusBar - 1;
使用比较简单,直接初始化尺寸并调用 visible 显示出来
MISFloatingBall *globallyBall = [[MISFloatingBall alloc] initWithFrame:CGRectMake(100, 100, 60, 60)];
globallyBall.backgroundColor = [UIColor redColor];
[globallyBall visible];
如果想要设置悬浮球内容的话,我提供了 setContent 接口,并且有个 contentType,可供选择设置图片文字或者上面两个不满足,直接传入自定义 customView,在悬浮球内部是自动居中的。这里我的 content 是 id 类型,但我在内部做了限制,如果使用 image 场景但是却传入 title 类型的话就会崩溃,在 Debug 模式下,如果意外传参错误会自动定位到 NSAssert 处。
[globallyBall setContent:[UIImage imageNamed:@"apple"] contentType:MISFloatingBallContentTypeImage];
悬浮球提供了一个点击的 block 回调,可以在 block 中处理点击悬浮球需要处理的事件(或者代理方法中处理,此处省略)
__weak typeof(globallyBall) weakBall = globallyB
[globallyBall setClickHander:^{
[weakBall disVisible];
如果需要自动靠边则开启属性
globallyBall.autoCloseEdge = YES;
如果想要设置靠边之后停靠多少秒缩进我提供了一个快速设置接口 MISEdgeRetractConfig 是一个 stuct 类型,提供一个快速设值的内联方法 MISEdgeOffsetConfigMake,内部通过请求 block 返回的 config 进行了设置悬浮球缩进后的参数,MISEdgeOffsetConfigMake(CGPointMake(20, 30), 0.7f) 表示,当靠边后 3s 之后会像当前停靠边缘缩进,如果是左右边则缩进 offse.x 即为 20,如果上下的话那就是缩进 30 啦,并且缩进之后悬浮球透明度变为 0.7f,如果 edgeRetractConfigHander 传入 NULL ,外界不传值,则使用默认值。
// 3s后缩进
[floating autoEdgeRetractDuration:3.0f edgeRetractConfigHander:^MISEdgeRetractConfig{
return MISEdgeOffsetConfigMake(CGPointMake(20, 30), 0.7f);
但是有时候可能并不想使用全局的一个悬浮球,毕竟可以全屏幕跑跨各种 VC。有时候需要限制住只在当前的某一个页面使用生效,点击 push 或者跳转,都不会影响下一个页面,所以除了全局悬浮球,我提供了一个快速生成的指定 view 生效的悬浮球,接口使用也比较简单。
MISFloatingBall *floatingBall = [[MISFloatingBall alloc] initWithFrame:CGRectMake(100, 100, 100, 100) inSpecifiedView:self.view];
floatingBall.backgroundColor = [UIColor orangeColor];
其他接口的调用同上,主要说下,因为指定 view 我是在接口内部 addSubview 当前的 floatingBall。所以这里会有个问题,在不影响外界操作的情况下,我内部的细节是对外部隐藏的,所以会出现一个问题如果 visable 之后,在同样的 view上添加了另一个子 view 如果位置有重合,就会覆盖我的悬浮球的 bug,因为现在悬浮球和所有的 view 都是在同一个 window 上,不像上一个全局的悬浮球那样层级高的 window 内的 view 是不会被 noremal 层级的 window 中的子 view 覆盖住的,于是用 runtime swizzle 掉系统的 addSubview。
- (void)mis_addSubview:(UIView *)subview {
[self mis_addSubview:subview];
[self.subviews enumerateObjectsUsingBlock:^(UIView * obj, NSUInteger idx, BOOL * _Nonnull stop) {
if ([obj isKindOfClass:[MISFloatingBall class]]) {
[self insertSubview:subview belowSubview:(MISFloatingBall *)obj];
最开始是这样子的,其实有个严重的问题,只要当前类包含了 MISFloatingBall 文件,只有程序装载了我的 MISFloatingBall 文件,所有的类调用 addSubView 都会去遍历 subviews,想必是很可怕的一件事,并不是实现了效果就完全 OK 了,所以如果不频繁的 addSubview 都会走 swizzle 方法去遍历,最后做了下面的限制。
- (void)mis_addSubview:(UIView *)subview {
[self mis_addSubview:subview];
if ([MISFloatingBallManager shareManager].canRuntime) {
if ([[MISFloatingBallManager shareManager].superView isEqual:self]) {
[self.subviews enumerateObjectsUsingBlock:^(UIView * obj, NSUInteger idx, BOOL * _Nonnull stop) {
if ([obj isKindOfClass:[MISFloatingBall class]]) {
[self insertSubview:subview belowSubview:(MISFloatingBall *)obj];
在这里做了一个限制,只有当前 view 添加了我的 ball,并且添加之后,过滤掉非 ball 父视图的 addSubview 操作,这样就不会影响其他界面的操作了,其实还有其他的方法,比如给分类添加一个ball标识然后内部直接去复赋值 insertSubview:belowSubview:
就不需要遍历了这里需要感谢,川大神的交流指导提供了一波思路。
其实上次刚好也看到有个人写的一个 floatingBall,虽然他打了一个 .a 静态库看不到源码,但是通过测试发现他是用的 hitTest 方法,触摸的 view 直接放到当前父视图最上层,这种方法其实是存在 bug 的,初始化的时候位置刚刚好就被覆盖住了,最后上个效果图。
效果图.gif
其实悬浮球比较简单,但是还是有很多细节问题需要注意的,其实还有两个功能没有开发,旋转屏适配 和 弹出扩展 view,那样的话就更完美了后续再持续更新,其实还有个主要目的是想先弄一个 OC 版本的出来再写个 swift 的版本,因为刚好在学 swift,就当实例操作了,还有最重要的是终于趁着节假日,搞完了一篇博客。
一个iOS 菜鸟
掘金: https://juejin.im/user/58c06d65c730/posts
https://github.com/chengp0819
简单的悬浮小球demo下载地址 1.UIWindow简介 一个UIWindow对象为应用程序的用户界面提供了背景以及重要的事件处理行为。UIWindow继承自UIView,我们一般不会直接去设置其UI展现,但它对展现程序中的views至关重要。每一个view,想要出现在屏幕...
UIWindow简介 一个UIWindow对象为应用程序的用户界面提供了背景以及重要的事件处理行为。UIWindow继承自UIView,我们一般不会直接去设置其UI展现,但它对展现程序中的views至关重要。每一个view,想要出现在屏幕上都依赖于window,但是程序中的...
本文的理论知识是基于:Android自定义ViewGroup神器-ViewDragHelper,如果你对ViewDragHelper的使用不熟悉,请先阅读这篇文章。 前言 “悬浮球”最初是iPhone手机上的一个虚拟按键,它会悬浮于所有APP之上,手指随意拖动,松开后会自动...
前言 去年用了一整年的MX4Pro,魅族留给我最大的印象就是悬浮球了(质量问题我就不说了),左右滑动切换应用、上拉返回桌面、下拉打开通知栏、轻触返回...,一切都那么丝滑。然而自从上半年换成了s7dege,我感觉怎么也习惯不了没有悬浮球的生活了。 三星自己也有一个类似于悬浮...
先来看一张动态图 昨天跟着视频学了如何自定义View并做成仿360悬浮球与加速球的样式 可以看出来,做成的效果有: 点击按钮后退出Activity,呈现一个圆形的悬浮球,可以随意拖动并会自动依靠到屏幕一侧,且拖动时会变成一张图片 当点击悬浮球时,悬浮球隐藏,底部出现一个加速...
把握好人与人之间的“安全距离”才是人际关系的正道。
文/魔小舒 昨天有一位读者留言:婚姻生活九年让我觉得特别的痛苦,我不知道如何走出这痛苦? 想起一位婚姻专家的话:“婚姻里没有天堂,除了人间,就是地狱。” 她又写道:我能给你讲讲我痛苦...
我不知道自己的故乡在哪里,从小跟着父母四处漂泊,父母的家乡对我来说是陌生的,只是名义籍贯。真的很羡慕那些来自偏远乡村的人们,在他们的记忆里,总有一个回味无穷的故乡值得留恋,尽管这故乡其实可能是个贫困凋敝,毫无诗意的僻壤,但是每逢春节,他们都会乐意加入春运返乡大军,尽情地遐想...
生活中的选择无处不在,大到高考择校、择偶结婚,小到每天吃饭吃什么、买什么样的衣服。但是如何做一个优质的选择呢?
首先,要明确什么对自己的人生最重要,以后想成为什么样的人。长远来看,健康和成长永远是第一位的。
上大学的时候,我选择了和一群志同道合的小伙伴们...
上班,加班,加班,加班……挺好的!只为记录、只为分享
Qt之窗口靠边隐藏
Qt之窗口靠边隐藏
Qt事件介绍
事件(event)是有系统或者Qt本身在不同的时刻发出的,当用户按下鼠标,敲下键盘,或者是窗口需要重新绘制的时候,都会发出一个相应的事件。一些事件是在对用户操作做出响应的时候发出,如键盘事件等;另一些事件则是由系统自动发出,如计时器事件。
Qt常见事件
键盘事件(QKeyEvent ):按键按下和松开.
鼠标事件(MouseEvent): 鼠标移动,鼠标按键的按下和松开.
拖放事件(QDropEvent): 用鼠标进行拖放.
滚轮事件(QWheelEvent): 鼠标滚轮滚动.
绘屏事件(QPaintEvent): 重绘屏幕的某些部分.
定时事件(QTimerEvent): 定时器到时.
焦点事件(QFocusEvent): 键盘焦点移动.
进入和离开事件(enterEvent(), leaveEvent): 鼠标移入widget之内,或是移出.
移动事件(QMoveEvent): widget的位置改变.
大小改变事件(QResizeEvent): widget的大小改变.
显示和隐藏事件(QShowEvent, QHideEvent): widget显示和隐藏.
窗口靠边所需应用事件
靠猜测相信大家应该也能猜出需要应用QT哪些事件来实现我们需要的效果
void leaveEvent(QEvent *event);
void enterEvent(QEvent *event);
void mouseReleaseEvent(QMouseEvent*event);
void mouseMoveEvent(QMouseEvent*event);
void mousePressEvent(QMouseEvent*event);
以上QT里的5种事件就是今天我们需要应用的,是不是感觉有些复杂呢?没关系等我来给大家理一理,你就会恍然大悟,其实也没那么难。It‘s So Easy!我先给大家上两张效果图,让大家更想也能这样实现一把。
窗口靠边效果图
看了上面的效果图之后,亲们~是不是也想感觉看见我的代码也去实现一番吶?好的,我们这就开启代码之路………..
//我们先来看看窗口的进入事件(enterEvent)
void EdgeToHide::enterEvent(QEvent *event)
switch (m_eEdgeStatus)
case EG_TOP:
setGeometry(pos().x(), -SHOW_EDGE_WIDTH, width(), height());
case EG_LEFT:
setGeometry(-SHOW_EDGE_WIDTH, y(), width(), height());
case EG_RIGHT:
setGeometry(QApplication::desktop()-&width() - width() + SHOW_EDGE_WIDTH, y(), width(), height());
return QWidget::enterEvent(event);
//窗口的离开事件(leaveEvent)
void EdgeToHide::leaveEvent(QEvent *event)
switch (m_eEdgeStatus)
case EG_TOP:
setGeometry(pos().x(), -height() + SHOW_EDGE_WIDTH, width(), height());
case EG_LEFT:
setGeometry(-width() + SHOW_EDGE_WIDTH, pos().y(), width(), height());
case EG_RIGHT:
setGeometry(QApplication::desktop()-&width() - SHOW_EDGE_WIDTH, pos().y(), width(), height());
return QWidget::leaveEvent(event);
//鼠标释放弹起事件(mouseReleaseEvent)
void EdgeToHide::mouseReleaseEvent(QMouseEvent*event)
if (y() &= 0)
m_eEdgeStatus = EG_TOP;
else if (QApplication::desktop()-&width() &= (this-&x() + width()))
m_eEdgeStatus = EG_RIGHT;
else if (this-&x() &= 0)
m_eEdgeStatus = EG_LEFT;
m_eEdgeStatus = EG_NORMAL;
QWidget::mouseReleaseEvent(event);
我们理一理哈,其实很简单,我首先需要移动窗口到边缘上,释放鼠标记录当前状态,看窗口在左边缘,右边缘,上边缘,还是正常的显示位置。OK,这是第一步。
第二步,检测到上一步状态后,我鼠标离开了界面窗口,然后进入离开事件机制中。检测状态,是否需要隐藏。
第三步,鼠标进来啦~~~快快现形吧!
是不是很简单啦,我们边缘隐藏效果就完成啦~眼光利索的朋友可能发现了,代码中不是还有两个事件没用上,是的。在这里因为我的窗口是不支持拖动的啦~所以需要另外的两个
mouseMoveEvent(QMouseEvent*event);
mousePressEvent(QMouseEvent*event);
这两个事件来支持我的窗口移动。至于怎么移动窗口嘛,等下会揭晓了哦O(∩_∩)O。
只为记录,只为分享! 愿所写能对你有所帮助。Good Good Study, Day Day Up!
扫码向博主提问
非学,无以致疑;非问,无以广识
擅长领域:
qt 实现停靠窗口 效果
窗口在屏幕边缘自动隐藏的实现(动态收缩与动态弹出)
QT之导航栏实现
Qt中停靠窗口的实现
Qt窗口像QQ在屏幕顶端自动隐藏
Qt实现窗体在显示屏旁边自动隐藏(类似QQ)
qt实现的窗口吸附屏幕边缘,动画隐藏显示的效果,类似于qq主窗口 吸附 隐藏的效果
qt窗口贴边隐藏
没有更多推荐了,MIUI 8 “悬浮球”也来了:很智能 支持滑动操作
“悬浮球”功能,很多手机中都已提供,现在小米“悬浮球”也来了。
小米悬浮球可以开启或关闭,开启后乖乖地吸附在边缘做一个小透明,支持滑动操作,流畅好用。
功能方面,悬浮球可以自定义操作,点击会弹出环状菜单,拥有返回桌面、菜单、锁定屏幕、截图、返回等功能,常用操作随手可得。
值得一提的是,输入法弹起的时候它还会自动弹上去,避免遮挡你输入。
---------------我是分割线-------------------
热点-热点新闻-头条新闻-你关注的才是热点!第一热点www.diyiredian.com
第一热点(www.diyiredian.com)汇集高品质的实时头条新闻、社会热点、热点话题、热点新闻、实时热点、社会热点新闻等,包括社会热点、科技热点、今日热点、社会热点、热点话题、实时热点、热点新闻排行、社会热点新闻、热点新闻评论等热点资讯,以及冲击视觉的精美图片。你关注的才是热点!
责任编辑:
声明:该文观点仅代表作者本人,搜狐号系信息发布平台,搜狐仅提供信息存储空间服务。
新媒体微博营销平台
一站全搜索,全搜网(Quanso.com.cn)
今日搜狐热点https://github.com/cai
模仿苹果虚拟悬浮按钮(自动靠边、可浮现任何界面上)
由于最近小蔡的手机音量键坏了,调节音量有点麻烦,突发奇想,想自己实现一个快捷键来调节音量。在忘上参考了一些代码,总结出一般本章,分享给大家。
首先 按钮要想实现悬浮在任何界面,那么必须是要写在服务里面的,使用定时器,2.5s不触摸后,背景变淡
清单文件中加权限
&uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" /&
public class FloatViewService extends Service {
private static final String TAG = "FloatViewService";
// 定义浮动窗口布局
private LinearLayout mFloatL
private WindowManager.LayoutParams wmP
// 创建浮动窗口设置布局参数的对象
private WindowManager mWindowM
private ImageButton mFloatV
private int screenH
private int screenW
private MyCountDownTimer myCountDownT
public void onCreate() {
super.onCreate();
Log.i(TAG, "onCreate");
screenHeight = ScreenParam.getInstance().//自己写的工具类用来获取屏幕宽高。
screenWidth = ScreenParam.getInstance().
createFloatView();
myCountDownTimer = new MyCountDownTimer(); //设置计时2.5s
myCountDownTimer.start();
@SuppressWarnings("static-access")
@SuppressLint("InflateParams")
private void createFloatView() {
wmParams = new WindowManager.LayoutParams();
// 通过getApplication获取的是WindowManagerImpl.CompatModeWrapper
mWindowManager = (WindowManager) getApplication().getSystemService(
getApplication().WINDOW_SERVICE);
// 设置window type
wmParams.type = LayoutParams.TYPE_PHONE;
// 设置图片格式,效果为背景透明
wmParams.format = PixelFormat.RGBA_8888;
// 设置浮动窗口不可聚焦(实现操作除浮动窗口外的其他可见窗口的操作)
wmParams.flags = LayoutParams.FLAG_NOT_FOCUSABLE;
// 调整悬浮窗显示的停靠位置为右侧底部
wmParams.gravity = Gravity.RIGHT | Gravity.BOTTOM;
// 以屏幕左上角为原点,设置x、y初始值,相对于gravity
wmParams.x = 0;
wmParams.y = 150;
// 设置悬浮窗口长宽数据
wmParams.width = WindowManager.LayoutParams.WRAP_CONTENT;
wmParams.height = WindowManager.LayoutParams.WRAP_CONTENT;
LayoutInflater inflater = LayoutInflater.from(getApplication());
// 获取浮动窗口视图所在布局
mFloatLayout = (LinearLayout) inflater.inflate(
R.layout.alert_window_menu, null);
// 添加mFloatLayout
mWindowManager.addView(mFloatLayout, wmParams);
// 浮动窗口按钮
mFloatView = (ImageButton) mFloatLayout
.findViewById(R.id.alert_window_imagebtn);
mFloatLayout.measure(View.MeasureSpec.makeMeasureSpec(0,
View.MeasureSpec.UNSPECIFIED), View.MeasureSpec
.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED));
// 设置监听浮动窗口的触摸移动
mFloatView.setOnTouchListener(new OnTouchListener() {
boolean isC
private int leftD
private float rawX;
private float rawY;
@SuppressLint("ClickableViewAccessibility")
public boolean onTouch(View v, MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
mFloatLayout.setAlpha(1.0f);
myCountDownTimer.cancel();取消计时
rawX = event.getRawX();
rawY = event.getRawY();
case MotionEvent.ACTION_MOVE:
// getRawX是触摸位置相对于屏幕的坐标,getX是相对于按钮的坐标
int distanceX = (int) (event.getRawX()-rawX);
int distanceY = (int) (event.getRawY()-rawY);
leftDistance = (int) event.getRawX()
+ mFloatView.getMeasuredWidth() / 2;
wmParams.x = wmParams.x-distanceX;
wmParams.y = wmParams.y-distanceY;
mWindowManager.updateViewLayout(mFloatLayout, wmParams);
rawX = event.getRawX();
rawY = event.getRawY();
case MotionEvent.ACTION_UP:
myCountDownTimer.start();重新开始计时
if(wmParams.x&leftDistance){
wmParams.x = screenWidth-mFloatView.getMeasuredWidth() / 2;
wmParams.x = 0;
mWindowManager.updateViewLayout(mFloatLayout, wmParams);
mFloatView.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
AudioManager audioManager = (AudioManager) getSystemService(Service.AUDIO_SERVICE);
audioManager.setStreamVolume(AudioManager.STREAM_MUSIC,
audioManager.getStreamVolume(AudioManager.STREAM_MUSIC), AudioManager.FLAG_SHOW_UI);
Toast.makeText(FloatViewService.this, "hello!",
Toast.LENGTH_SHORT).show();
public void onDestroy() {
super.onDestroy();
if (mFloatLayout != null) {
// 移除悬浮窗口
mWindowManager.removeView(mFloatLayout);
public IBinder onBind(Intent intent) {
public class MyCountDownTimer extends CountDownTimer {
public MyCountDownTimer(long millisInFuture, long countDownInterval) {
super(millisInFuture, countDownInterval);
public void onTick(long millisUntilFinished) {
public void onFinish() {
mFloatLayout.setAlpha(0.4f);
然后再Activity里启动服务就好了
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ScreenParam.getInstance().init(this);
protected void onStart() {
// TODO Auto-generated method stub
Intent intent = new Intent(MainActivity.this, FloatViewService.class);
//启动FloatViewService
startService(intent);
super.onStart();
如果不想显示Activity界面的话,可以在配置这个属性就ok了
android:theme="@android:style/Theme.NoDisplay"
android:theme="@android:style/Theme.NoDisplay"
就是这么简单!
iOS自定义悬浮按钮,Objective-C可拖动的浮动按钮,iOS浮动图标,类似AssistiveTouch的浮动漂浮按钮
iOS中全局悬浮按钮,类似IPhone中的AssistiveTouch
Android:仿苹果按钮
仿ios touch按钮创建可随意拖动的悬浮按钮
没有更多推荐了,经验11836 米
在线时间53 小时
机型未知设备
签到次数113
MIUI版本8.5.8
刚才都发表失败了,还好我截图了,不会隐藏…觉得有用就支持下吧
Screenshot_-09-25-50-443_com.miui.miuibbs.png (166.14 KB, 下载次数: 0)
分享到微信朋友圈
打开微信,点击底部的“发现”,使用 “扫一扫” 即可将网页分享到我的朋友圈。
已有&1&人评分
感谢分享^_^
经验7230 米
在线时间53 小时
版本7.12.21
机型未知设备
签到次数67
MIUI版本7.12.21
谢谢分享咯
经验817 米
在线时间3 小时
版本V8.1.3.0.MAACNDI
积分 846, 距离下一级还需 1154 积分
积分 846, 距离下一级还需 1154 积分
机型未知设备
签到次数25
MIUI版本V8.1.3.0.MAACNDI
表示未成功&&但是顶一下
经验10557 米
在线时间571 小时
版本V8.5.1.0.NXHCNED
积分 14589, 距离下一级还需 5411 积分
积分 14589, 距离下一级还需 5411 积分
机型小米手机4
签到次数151
MIUI版本V8.5.1.0.NXHCNED
签名主题--云水谣,只是修改了锁屏还有适配了一些自己手机上的图标
经验3150 米
在线时间15 小时
版本8.5.17
机型未知设备
签到次数117
MIUI版本8.5.17
不见了,你赔我!!
经验11836 米
在线时间53 小时
机型未知设备
签到次数113
MIUI版本8.5.8
表示未成功&&但是顶一下
点到悬浮球就迅速往边缘滑动就行了
经验11836 米
在线时间53 小时
机型未知设备
签到次数113
MIUI版本8.5.8
不见了,你赔我!!
经验817 米
在线时间3 小时
版本V8.1.3.0.MAACNDI
积分 846, 距离下一级还需 1154 积分
积分 846, 距离下一级还需 1154 积分
机型未知设备
签到次数25
MIUI版本V8.1.3.0.MAACNDI
点到悬浮球就迅速往边缘滑动就行了
我想了想我不是MIUI8的好尴尬
经验11836 米
在线时间53 小时
机型未知设备
签到次数113
MIUI版本8.5.8
我想了想我不是MIUI8的好尴尬
经验1863 米
在线时间16 小时
机型未知设备
签到次数100
MIUI版本7.6.8
感谢分享,我也是刚知道
点赞金米兔勋章
参加小米上市回帖活动
MIUI 10专属勋章
参加回帖活动
2018新年勋章
参与回帖活动
感恩节勋章
参与回帖活动
万圣节勋章
参加回帖活动
米兔月饼勋章
参加回帖活动
MIUI七夕鹊桥勋章
MIUI七周年
MIUI 9纪念勋章
小米众筹2周年
参加回帖活动
新版论坛APP
更新新版APP
小米7周年勋章
2017米粉节晒单赢专属勋章
“澎湃S1 ”芯片纪念勋章
参与活动回帖可得
参与红米Note 4X活动
2017年小金鸡勋章
回复2016年度评选活动贴
圣诞节勋章
参与圣诞活动
APP 1000万
MIUI论坛APP注册用户突破1000万纪念勋章
小火箭勋章
神舟11号 话题活动
MIUI 300周
MIUI 300周更新纪念勋章
MIUI3亿用户纪念勋章
参与回帖活动
已关注微信
已关注极客秀微信
关注腾讯微博
已关注腾讯微博
关注新浪微博
已关注新浪微博
MIUI 3000万
MIUI 3000万发烧友纪念勋章
MIUI 2000万
MIUI 2000万发烧友纪念勋章
1000万用户纪念勋章
MIUI1000万用户纪念勋章
MIUI三周年
MIUI三周年纪念勋章
Copyright (C) 2017 MIUI
京ICP备号 | 京公网安备34号 | 京ICP证110507号

我要回帖

更多关于 安卓好用的悬浮球 的文章

 

随机推荐