Android 11.0 自定义仿小米全面屏手势导航左右手势滑动返回UI效果

这篇博客主要介绍了如何在Android 11.0中自定义仿小米全面屏手势导航的返回UI效果,包括核心代码解析和功能实现,涉及NavigationBarView、EdgeBackGestureHandler和NavigationBarEdgePanel等关键组件的手势返回布局代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

1.概述

2.自定义仿小米全面屏手势导航返回ui布局的核心代码 

3.自定义左右手势返回UI样式的核心代码功能分析

3.1 NavigationBarView手势导航布局左右手势返回的相关代码

3.2 EdgeBackGestureHandler手势导航布局左右手势返回的相关代码

3.3 NavigationBarEdgePanel 手势导航布局左右手势返回的相关代码

4. 自定义仿小米全面屏手势导航返回ui布局功能实现


1.概述

 在定制化开发中,对SystemUI的UI效果修改定制也是常有的功能,由于发现小米全面屏手势左右滑动返回UI效果比较美观
所以有需求要求仿小米全面屏手势来做左右滑动返回UI的效果,来自定义UI做手势返回的布局样式,这样的弧线就涉及到用贝塞尔曲线来实现功能

效果图:

2.自定义仿小米全面屏手势导航返回ui布局的核心代码 

frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarView.java
  frameworks/base/packages/SystemUI/src/com/android/systemui/sta
Android 11.0 (API级别30) 允许开发者更深入地自定义系统界面,包括status bar(状态栏)和navigation drawer(导航抽屉)。对于自定义下拉框布局,通常是在创建system UI overlay时操作,例如设置快捷开关或者应用主题切换。 要在Android 11自定义status bar 下拉菜单(比如音量控制),你需要: 1. **权限管理**:首先,需要在`AndroidManifest.xml`中添加`<uses-permission>`标签,请求`SYSTEM_ALERT_WINDOW`权限,允许应用显示在其他应用之上。 ```xml <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" /> ``` 2. **创建视图**:在你的Activity或Fragment中,创建一个View对象,可以是一个`LinearLayout`、`PopupMenu`或者自定义的`PopupWindow`实例,并设置所需的布局。 ```java View statusBarView = LayoutInflater.from(context).inflate(R.layout.status_bar_dropdown, null); statusBarView.setOnTouchListener(new View.OnTouchListener() { // 处理触摸事件 }); ``` 3. **添加到system UI**:使用`WindowManager.LayoutParams`将你的视图添加到系统窗口栈上。记得设置`flags`属性以指定是否覆盖其他系统UI元素。 ```java WindowManager.LayoutParams layoutParams = new WindowManager.LayoutParams( WindowManager.LayoutParams.TYPE_SYSTEM_ALERT, WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN | WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE | WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE, PixelFormat.TRANSLUCENT ); layoutParams.gravity = Gravity.TOP | Gravity.END; // 根据需求调整位置 WindowManager windowManager = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE); windowManager.addView(statusBarView, layoutParams); ``` 4. **处理交互**:在`OnTouchListener`中处理用户对下拉框的触碰和滑动事件,以及关闭弹出框的操作。 5. **注意兼容性和适配**:确保你的自定义布局在各种设备和配置下都能正常工作,并且遵守Material Design规范。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

安卓兼职framework应用工程师

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值