当前位置: 首页 > news >正文

网站界面ui设计网站开发设计流程论文

网站界面ui设计,网站开发设计流程论文,哈尔滨制作企业网站,个人网站可以做地方文章前提: 了解WMS基本作用了解window的概念,phoneWindow,rootViewImpl了解view的事件分发 开始: 讲三件事情: window的创建,更新焦点的更新事件的分发 Window的创建,更新: wi…

文章前提:

  • 了解WMS基本作用
  • 了解window的概念,phoneWindow,rootViewImpl
  • 了解view的事件分发

开始:

讲三件事情:

  1. window的创建,更新
  2. 焦点的更新
  3. 事件的分发

Window的创建,更新:

window的创建:

最终都是通过和WMS通信完成的。

WMS管理着window的增,删,改以及window层级的管理(Z-order的堆栈管理...),因此window的创建我们自然就联想到了WMS。

performLaunchActivity()方法中,也就是在 Activity 的启动过程中的几乎最后一步执行:

调用activity.attch()方法

 

创建PhoneWindow

handleResumeActivity()处理onResume(),因此在performLaunchActivity后面执行在这个方法中调用了addView方法:

这个addView由WindowManagerGloal实现,其中创建RootViewImpl,并进行setView()

WindowManagerGloal:

这个root就是RootViewImpl,接下来到setView方法中

通过addToDisPlayAsUser方法调用,

在其中调用WMS的addWindow方法:

此时终于到了WMS的addWindow方法中,这里面做了四件事:

  • 窗口检查
  • token处理
  • windowState的创建
  • displayContent的创建和配置

执行完后,由WMS直接和SurfaceFlinger通信,进行显示,此时我们的window就显示出来了。

window的更新:

什么情况下会出现window的更新?

键盘出现,窗口需要重新计算布局并更新显示内容。

只是api执行的不同,不过逻辑同样,app进程发起更新请求,由WindowManagerGlobal进行处理,这个类和WMS通过IWindowSession进行通信,实现更新操作。

焦点的更新:

焦点的基本概念

  • 焦点(Focus):UI元素获得焦点后,能够接收用户输入事件,如按键和触摸事件。
  • 默认焦点:当一个Activity启动时,系统会自动为某个可交互的控件设置默认焦点。

焦点的获取和失去

  • 获取焦点:一个视图可以通过调用requestFocus()方法来请求获取焦点。
  • 失去焦点:一个视图可以通过调用clearFocus()方法来主动放弃焦点。

焦点的移动

  • 键盘导航:用户可以使用方向键(如上、下、左、右)在可获得焦点的视图之间导航。
  • Tab顺序:使用android:nextFocusUp, android:nextFocusDown, android:nextFocusLeft, android:nextFocusRight属性来指定焦点导航的顺序。

处理焦点冲突

  • focusable属性的合理使用:确保只有需要交互的视图设置为可获得焦点。
  • 自定义焦点顺序:通过XML属性或代码来明确设置焦点导航顺序,避免焦点在不合理的视图之间跳转。

OK,开始焦点机制的部分:

文章前提:

  • 了解InputManagerService
  • 了解WMS
  • 了解RootViewImpl

想要使得焦点更新,需要操作:

分为两种:

  • requestFocus()
  • 有外部点击

requestFocus:

会通过Binder,通过WMS,WMS中会判断焦点是否更新。

外部点击:

SurfaceFlinger接收到点击之后,通过InputChannel,发送给WMS,WMS内持有所有window的集合,会判断是否需要更新window焦点,通过WMS,surfaceFlinger得知需要更新的window之后,直接通知对应的window的RootViewImpl,通知DecorView,通知Activity,通知PhoneWindow,通知DecorView,然后继续向下分发......下面就是老生常谈的view事件分发机制了......

http://www.yayakq.cn/news/100928/

相关文章:

  • 个人域名备案需要什么资料网站设计优化
  • 在哪家网站做推广好自己建设网站容易吗
  • 个人做网站有什么条件网站开发 q3687474
  • 可以写代码的网站有哪些问题个人博客网站备案
  • 客栈网站建设代码企业所得税优惠政策2022
  • php做网站安装万联芯城网站建设
  • 做海关授权的网站江油建设局网站
  • 正常做网站多少钱网上做兼职正规网站有哪些
  • 郑州seo建站智能微营销系统
  • 问答网站建设怎么提问宿州做网站的公司
  • 顶呱呱网站做的怎么样如何在建设银行网站查验回单
  • 外贸网站源码phpwordpress 搬家 图片
  • 成都网站建设 哪家比较好网站内的地图导航怎么做的
  • 网站外链建设需要逐步进行适可优化即可监理工程师
  • 网站后台怎样登陆淘宝客做二级域名网站
  • 中英文网站建设用两个域名如何查询企业联系方式
  • 做优化送网站微信小程序聊天室源码
  • 兰州网站建设咨询薇网站的风格包含的因素
  • 建站平台 选择成都网站建设公司是什么
  • 网站班级文化建设方案十大永久免费crm
  • 网站建设预算表格北京网络推广有哪些公司
  • 怎么修改自己网站内容广州广告公司前100名排行
  • 黑彩网站建设运营网站手机端做app开发工具
  • 为什么做的网站在谷歌浏览器打不开沉默是金粤语谐音歌词
  • 怎么用自己笔记本建设网站seo优化的作用
  • 东营市做网站c 网站开发需要学什么
  • 购物电商型网站怎么做我们公司想做网络推广
  • 网站图片标签网站备案 新闻类前置审批
  • 网站数据库怎么做同步吗百度营销平台
  • 优质的武进网站建设免费做国际贸易的网站