Android Native Browser的界面还是比较单一,比较少的。主要体现为:主界面(主要用于加载网页)、设置页面(用于设置浏览器中各个属性,比如是否启用JavaScript、是否保存密码等)、书签&历史记录页面(展示书签以及访问网页的历史记录)。
首先从代码层面分析下主界面的UI逻辑实现,看看到底是如何加载网页的。
因Browser App同时也要兼容平板设备,所以,这里又抽象出一个抽象类BaseUi来实现手机与平板公共通用的部分,然后将差异性的方法通过派生类PhoneUi与XLargeUi来实现。
Browser主界面头部会有一个标题栏,主要用于输入网址、保存书签,因为平板与手机的尺寸是不同的,对应的头部Tab页导航展示也就不同了,所以Browser内部又声明了NavigationBarPhone、NavigationBarTablet类来进行处理,他们继承于NavigationBarBase类。
整个结构关系如下:
启动页:BrowserActivity::onCreate()
初始化Controller 对象
然后调用Controller start方法
首先从代码层面分析下主界面的UI逻辑实现,看看到底是如何加载网页的。
(一)基础架构
Browser定义了UI接口来统管整个主界面的操作,以及对Activity生命周期发生变化的处理。因Browser App同时也要兼容平板设备,所以,这里又抽象出一个抽象类BaseUi来实现手机与平板公共通用的部分,然后将差异性的方法通过派生类PhoneUi与XLargeUi来实现。
Browser主界面头部会有一个标题栏,主要用于输入网址、保存书签,因为平板与手机的尺寸是不同的,对应的头部Tab页导航展示也就不同了,所以Browser内部又声明了NavigationBarPhone、NavigationBarTablet类来进行处理,他们继承于NavigationBarBase类。
整个结构关系如下:
(二)主界面如何Load出来的
启动页:BrowserActivity::onCreate()初始化Controller 对象
然后调用Controller start方法