自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(11)
  • 收藏
  • 关注

原创 Android MVVM架构模式 详解和综合运用(三)

View元素标签属性设置当在layout文件中的binding表达式与View绑定的变量值改变时,生成Binding类会在View上调用相应的setter方法。DataBinding库会自动调用相对应的方法去设置值。自动设置属性值setter 对于每一个元素的属性,DataBinding都会去查找相关的方法如setXXX(属性名)来设置属性值。例如,对于TextView中的属性android:te

2017-02-27 21:15:31 653

原创 Android MVVM架构模式 详解和综合运用(二)

绑定事件处理程序DataBinding的一个关键就是View和ViewModel可以关联在一起,实现双向交互。例如在View层触发了一个事件,例如点击onClick,DataBinding可以在layout布局文件中的属性@{ }表达式中来处理这个事件,而不用自己去设置监听器来处理事件。例如,View.onClickListener中有一个方法是onClick,所以在view元素节点上有对应的属性a

2017-02-27 13:27:34 1289

原创 Android MVVM架构模式 详解和综合运用(一)

Android App架构设计Android App架构设计的目的是通过设计使程序模块化,做到模块内部的高聚合和模块之间的低耦合。这样做的好处是使得程序在开发的过程中,开发人员只需要专注于一点,提高程序开发的效率,并且更容易进行后续的测试以及定位问题。但设计不能违背目的,对于不同量级的工程,具体架构的实现方式必然是不同的,切忌犯为了设计而设计,为了架构而架构的毛病。 Android的架构设计从早期

2017-02-26 20:06:33 979

原创 JavaScript DOM文档对象和编写DOM脚本

JavaScript在Web开发中的主要作用是与用户交互,在网页上添加某种行为。JavaScript允许在网页加载到浏览器中后,完全改变网页的所有方面,JavaScript在网页上提供这个功能的基础是文档对象模型(Document Object Model,DOM),这是网页的树状表示方法。DOM为开发人员提供了一种表示网页中的所有元素的方式,以便在JavaScript中通过一组通用的属性和方法来访

2017-02-22 15:38:28 1364

原创 Android 布局文件中Tools属性的应用

每当创建新项目的时候,在MainActivity的布局文件layout中的根节点上都有一个xmlns:tools=”http://schemas.android.com/tools”的命名空间声明,以前一直认为没什么用处,知道最近看了文档才知道tools包含很多很实用的属性,下面就记录下tools一些主要属性的用法。介绍Android Studio支持在tools命名空间中定义的许多XML属性来使用

2017-02-17 19:54:03 2031

原创 设计模式-模板方法模式

模板方法模式定义模板方法模式定义:定义一个操作中的算法的框架,而将一些步骤延迟到子类中。使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。 模板方法模式非常简单,仅仅使用了Java的继承机制,但它是一个应用非常广泛的模式。模板方法模式算法框架模板方法模式的通用类图如图所示。包含两个角色,一个是抽象模板类,一个是具体模板类。 其中AbstractClass是抽象模板类,它的方法分为两

2017-02-10 22:43:16 645

原创 设计模式-责任链模式

责任链模式定义责任链模式定义如下:使多个对象都有机会处理请求,从而避免了请求的发送者和接受者之间的耦合关系。将这些对象连成一条链,并沿着这条链传递该请求,直到有对象处理它为止。 责任链模式的重点是在“链”上,由一条链去处理相似的请求,在链中决定谁来处理这个请求,并返回相应的结果。责任链模式的核心在“链”上,“链”是由多个处理者ConcreteHandler组成。 工作流程如下图所示: 如果传递

2017-02-10 16:10:55 288

原创 JavaScript 特性检测与浏览器嗅探

Internet上充斥着各种操作系统和各种版本的浏览器,每种浏览器都有自己的BOM和独有的特性。因此,保证页面在所有浏览器上正常运行是非常重要的,或者至少可以正常退出,例如显示一个消息建议用户升级浏览器。 有两种方法可以测试浏览器是否可以执行代码:特性检测和浏览器嗅探。它们的最终目标类似,测试给定的浏览器是否执行代码,但它们用于不同的目的。特性检测并非所有的浏览器都支持相同的特性,这里的特性是指对

2017-02-05 22:06:34 1962

原创 JavaScript 浏览器程序设计

不仅JavaScript是基于对象的,而且浏览器也是由对象组成的。JavaScript在浏览器中运行时,可以访问浏览器的对象,其方式与使用JavaScript的内置对象一样。浏览器提供了许多对象,例如window对象对应浏览器的窗口,document对象对应浏览器的页面等。还有许多其他对象可表示页面上写入的HTML,例如每个元素都对应一个img对象,用于在文档中插入一幅图像。浏览器为JavaScri

2017-02-05 16:23:04 1546

原创 Android 无限轮播ViewPager的实现

现在很多app的首页顶部都有一个可以滑动切换的ViewPager,或是显示广告图片,或是显示入口推荐信息等等。很多这些ViewPager都带有无限滑动的功能,也就是当滑动到最后一张图片时,继续向右滑动会转到第一张图片;当在第一张图片向左滑动时,会转到最后一张图片。这种功能的实现提升了用户的体验,使用户能更方便的切换,而不用每次都要滑动N次来导航到第一张或是最后一张图片。这种功能的实现很简单,可以通过

2017-02-04 23:55:06 2164 1

原创 设计模式-装饰模式

装饰模式定义装饰模式是一种比较常见的模式,其定义如下:动态地给一个对象添加一些额外的职责。就增加功能来说,装饰模式相比生成子类更为灵活。优点装饰类和被装饰类可以独立发展,而不会相互耦合。Component类无须知道Decorator类,Decorator类是从外部来扩展Component类的功能,而Decorator也不用知道具体的构件。 装饰模式是继承关系的一个替代方案。不管装饰多少层,返回的对

2017-02-04 11:55:39 313

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除