安卓10.0 分屏相关

安卓10.0 分屏

packages/apps/Launcher3/quickstep/recents_ui_overrides/src/com/android/quickstep/views/TaskMenuView.java

208 private void addMenuOption(TaskSystemShortcut menuOption, OnClickListener onClickListener) {

209 ViewGroup menuOptionView = (ViewGroup) mActivity.getLayoutInflater().inflate(

210 R.layout.task_view_menu_option, this, false);

211 menuOption.setIconAndLabelFor(

212 menuOptionView.findViewById(R.id.icon), menuOptionView.findViewById(R.id.text));

213 menuOptionView.setOnClickListener(onClickListener);

214 mOptionLayout.addView(menuOptionView);

215 }

packages/apps/Launcher3/quickstep/recents_ui_overrides/src/com/android/quickstep/TaskSystemShortcut.java

public static class SplitScreen extends MultiWindow

sysUiProxy.onSplitScreenInvoked()

frameworks/base/packages/SystemUI/src/com/android/systemui/recents/OverviewProxyService.java

frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarFragment.java

private boolean onLongPressNavigationButtons(View v, @IdRes int btnId1, @IdRes int btnId2)

onLongPressRecents()

frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java

public void toggleSplitScreen()

protected boolean toggleSplitScreenMode(int metricsDockAction, int metricsUndockAction)

分屏流程:

frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarFragment.java

//长按任务栏进行分屏

onLongPressRecents()

mStatusBarLazy.get().toggleSplitScreenMode(MetricsEvent.ACTION_WINDOW_DOCK_LONGPRESS,MetricsEvent.ACTION_WINDOW_UNDOCK_LONGPRESS);

frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java

toggleSplitScreenMode(int metricsDockAction, int metricsUndockAction)

mRecentsOptional.get().splitPrimaryTask(createMode, null, metricsDockAction);

frameworks/base/packages/SystemUI/src/com/android/systemui/recents/OverviewProxyRecentsImpl.java

public boolean splitPrimaryTask(int stackCreateMode, Rect initialBounds, int metricsDockAction)

//支持分屏多窗口

if (runningTask.supportsSplitScreenMultiWindow) {

if (ActivityManagerWrapper.getInstance().setTaskWindowingModeSplitScreenPrimary(

runningTask.id, stackCreateMode, initialBounds)) {

mDividerOptional.ifPresent(Divider::onDockedTopTask);

// 全景服务正在处理拆分屏幕,因此只需跳过等待第一个绘制的通知,并通知分屏器立即开始制作动画。

mDividerOptional.ifPresent(Divider::onRecentsDrawn); return true; } } else { //不支持分屏多窗口 Toast.makeText(mContext, R.string.dock_non_resizeble_failed_to_dock_text,Toast.LENGTH_SHORT).show(); }新增setTaskWindowingModeSplitScreenPrimary函数,该函数可将任务移动至WindowingMode与ActivityType匹配SPLIT属性栈的Stack运行;

相关推荐
BD_Marathon2 小时前
Eclipse 代码自动补全设置
android·java·eclipse
w***74402 小时前
SQL Server 数据库迁移到 MySQL 的完整指南
android·数据库·mysql
zgyhc205011 小时前
【Android Audio】dumpsys media.metrics分析
android
nono牛11 小时前
Android Binder 详解与实践指南
android·binder
小镇学者11 小时前
【PHP】PHP WebShell(网页木马)分析
android·开发语言·php
2501_9160074712 小时前
iOS 压力测试的工程化体系,构建高强度、多维度、跨工具协同的真实负载测试流程
android·ios·小程序·uni-app·cocoa·压力测试·iphone
毕设源码-钟学长14 小时前
【开题答辩全过程】以 浮生馆汉服租赁管理系统为例,包含答辩的问题和答案
android·java·tomcat
louisgeek14 小时前
Android NDK 开发中的崩溃排查
android
2501_9159214315 小时前
iOS 开发者工具推荐,构建从调试到性能优化的多维度生产力工具链(2025 深度工程向)
android·ios·性能优化·小程序·uni-app·iphone·webview