Activity中UI框架基本概念

  Activity中UI框架基本概念

  Activity 是应用程序的基本组成部分,提供了可视的界面,与用户进行交互;

具体Acitivity是怎么样显示这些事视图元素以及响应事件交互的。

一Activity相关概念
Activity:Activity包含一个Window,该Window在Activity的attach方法中通过调用

PolicyManager.makeNewWindo创建;

View:最基本的UI组件,表示屏幕上的一个矩形区域;

DecorView:是Window中View的RootView,设置窗口属性;

Window:表示顶层窗口,管理界面的显示和事件的响应;每个Activity 均会创建一个

         PhoneWindow对象,是Activity和整个View系统交互的接口

WindowManager:一个interface,继承自ViewManager。所在应用进程的窗口管理器;

有一个implementation WindowManagerImpl;

主要用来管理窗口的一些状态、属性、view增加、删除、更新、窗口顺序、消息收集和处理等。

ViewRoot:通过IWindowSession接口与全局窗口管理器进行交互:界面控制和消息响应;

ActivityThread:应用程序的主线程,其中会创建关联当前Activity与Window;

创建WIndowManager实现类实例,把当前DecoView加入到WindowManager;

    

二 实现流程框架图
         Activity上Window的创建关联流程如下:

  

    

相关类结构:

  

      

层级关系:

  (此图网上盗用...)

    
时间: 2024-11-04 13:55:12

Activity中UI框架基本概念的相关文章

Android UI框架基本概念

Activity:基本的页面单元,Activity包含一个Window,window上可以绘制各种view View:最基本的UI组件,表示屏幕上的一个矩形区域: Window:表示顶层窗口,管理界面的显示和事件的响应:每个Activity 均会创建一个PhoneWindow对象,是Activity和整个View系统交互的接口 PhoneWindow类:该类继承于Window类,同时,PhoneWindow类内部包含了一个DecorView对象.简而言之,PhoneWindow是把一个Frame

如何在Service中更新Activity的UI?

============问题描述============ 如何在Service中更新Activity的UI? 不想用广播.  有人说用接口,具体如何实现我一直不懂? 请赐教. ============解决方案1============ 将activity 实例传过来不就OK 了?然后调用其方法更新UI ============解决方案2============ 一般都用广播,否则在Activity也创建一个Messenger,也就是AIDL方式通信. ============解决方案3=====

应用程序的关闭退出(在FMX中,Activity替代了Form的概念)

在VCL中,关闭程序的主窗体也就意味着程序的主循环结束,主程序自然而然结束.所以在主窗体中使用窗体的关闭函数(Close)即可,如下: procedure TfrmMain.btncloseClick(Sender: TObject); begin   Close; end; 在FMX中,由Activity替代了Form的概念,虽然TForm类仍然存在,但MainForm通过关闭函数无法结束程序,使用Application.Terminate均无效,调整为: uses   FMX.Platfor

ASP.NET MVC搭建项目后台UI框架—8、将View中选择的数据行中的部分数据传入到Controller中

ASP.NET MVC搭建项目后台UI框架—1.后台主框架 ASP.NET MVC搭建项目后台UI框架—2.菜单特效 ASP.NET MVC搭建项目后台UI框架—3.面板折叠和展开 ASP.NET MVC搭建项目后台UI框架—4.tab多页签支持 ASP.NET MVC搭建项目后台UI框架—5.Demo演示Controller和View的交互 ASP.NET MVC搭建项目后台UI框架—6.客户管理(添加.修改.查询.分页) ASP.NET MVC搭建项目后台UI框架—7.统计报表 ASP.NE

android开发之在activity中控制另一个activity的UI更新

转自:http://blog.csdn.net/jason0539/article/details/18075293 第一种方法: 遇到一个问题,需要在一个activity中控制另一个acitivity做一些更新,没想到传递handler的方法,通过以下方式解决. 1.在MyAPP中定义属性handler 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 package jason.com;     import jas

vue项目中使用了vw适配方案,引入第三方ui框架mint-ui时,适配问题解决

问题分析: 一般第三方ui框架用的都是不同的适配方式,如果我们使用了vw适配,那么在使用mint-ui框架时,就会发现px单位会被转换成vw,从而导致样式变小的问题,如图 解决方案 网上看到了很多种解决方案,这里推荐第四种 1.重写第三方组件ui样式大小 2.在postcss.config.js中的selectorBlackList选项中增加不需要vw转换的类名 selectorBlackList: ['.ignore', '.hairlines'], // (Array) The select

Android Activity中onSaveInstanceState和onRestoreInstanceState的使用

Android Activity的onSaveInstanceState() 和 onRestoreInstanceState()方法: 1. 基本作用: Activity的 onSaveInstanceState() 和 onRestoreInstanceState()并不是生命周期方法,它们不同于 onCreate().onPause()等生命周期方法,它们并不一定会被触发.当应用遇到意外情况(如:内存不足.用户直接按Home键)由系统销毁一个Activity时,onSaveInstance

Google Polymer以及Web UI框架

时代在进步,原本前端只是用来简单的数据显示以及提交数据到后端处理逻辑的地方,而随着SPA的发展,前端的逻辑也越来越是庞大,恰巧,今天看微博的时候,发现一个概念讨论的比较多,就是 Web Components,顺藤摸瓜,做了一些了解,发现 Polymer 这样一个或许是未来的东东,至少有一点,chrome将会原生支持.收集了一些资料,多家学习. 1. Polymer Polymer由以下几层组成: 基础层(Foundation)——platform.js:基本构建块,其中大部分API最终将成为原生

基础知识漫谈(2):从设计UI框架开始

说UI能延展出一丢丢的东西来,光java就有swing,swt/jface乃至javafx等等UI toolkit,在桌面上它们甚至都不是主流,在web端又有canvas.svg等等. 基于这些UI工具包\框架,又产生了大量通用的或者业务性的UI框架,比如Draw2d.GEF.easyUI乃至国内的EChart.白鹭等等. 这些框架的业务范围各异,一个程序员的时间和精力有限,你不可能全部都掌握,又不能预言出是哪一个将来会独步天下,甚至,连当前哪一个最流行,都够打一阵嘴炮. 那,我们应该学什么?