摘要: config 中的属性默认都会自动生成 getter setter applier updater 四个方法。applier 在调用 setter 时被调用, updater 在属性值被改变时调用Ext.application({ launch: function () { // DataItem 相当与 list 中的一行 (row) // 对应 store 中的一条数据 // 相当于 适配器 Ext.define('MyListItem', { extend: 'Ext.dataview.compone... 阅读全文
posted @ 2014-04-11 23:02 LeslieFang 阅读(4073) 评论(1) 推荐(0) 编辑
摘要: 网上找了一张图, listview 异步加载图片之所以错位的根本原因是重用了convertView 且有异步操作.如果不重用convertView 不会出现错位现象, 重用convertView 但没有异步操作也不会有问题。我简单分析一下:当重用convertView 时,最初一屏显示 7 条记录,... 阅读全文
posted @ 2014-03-23 16:44 LeslieFang 阅读(63095) 评论(12) 推荐(5) 编辑
摘要: 需要依赖 httpmime.jar/** * 上传图片 * * @param url * 上传地址 * @param filepath * 图片路径 * @return */public String uploadImage(String url, String filepath) { File file = new File(filepath); if (!file.exists()) { Log.i("leslie", "file not exists"); return null; } Ht... 阅读全文
posted @ 2014-03-12 14:03 LeslieFang 阅读(7178) 评论(0) 推荐(0) 编辑
摘要: Put 用于全部更新Patch 用于部分更新重写一下 HttpPut 或 HttpPost 的 getMethod 方法/** * Send a patch request */public class HttpPatch extends HttpPut { public HttpPatch(String url) { super(url); } @Override public String getMethod() { return "PATCH"; }} 阅读全文
posted @ 2014-03-12 11:34 LeslieFang 阅读(2267) 评论(0) 推荐(0) 编辑
摘要: 最近在项目中要求用 webview 展示几个界面, 而后台返回的不是 html 而是 json 数据。起初用 StringBuilder 一个一个拼 html, 后来感觉太繁琐,拼一个还行,拼多了就无语了,为什么不用 js 模板引擎呢先看一下效果,经测试速度还可以。js 模板引擎有很多,像 jquery 创始人写的微型模板 artTemplate templateBaiduTemplate juicer ......有些依赖于 jqury node.js 等第三方库, 纯原生 js 的也很多。js 模板引擎在浏览器中用的非常多, 在 server 端和 手机端用的相对少一些。我用artTemp 阅读全文
posted @ 2014-03-08 19:50 LeslieFang 阅读(4590) 评论(0) 推荐(0) 编辑
摘要: 由于 scrollview 套 listview 会有很多问题,网上很多人用 LinearLayout 模拟 listview, 也可以设置 adapter。很多人直接继承 BaseAdapter, 可能是偷懒吧, 其实没有必要, BaseAdapter 里面有很多其它无用的方法被继承,其次 getView 等方法的签名可能不太符合, 直接定义一个接口或抽象类更好。这种方式在界面中有很多动态 list 布局时,抽离出来可能会灵活一些。 不用在代码中每次都 for 循环,动态创建 view 再添加。如果这种动态布局不是很多的话,直接 for 循环就行, 简单点的直接扩展一下LinearLayou 阅读全文
posted @ 2014-03-07 20:54 LeslieFang 阅读(5368) 评论(0) 推荐(0) 编辑
摘要: 1 sencha touch 中 list 如果不设置一个固定高度或 flex : 1, list 的内容就不会显示出来。主要是因为 list 是可滚动的,你不设置高度 ,list 的高度默认就是 0px。其实数据都是在的,只是没有显示出来。遇到 list 不显示的情况, 一般先看 dom 中是否有数据, 再看 store 中是否有数据,如果 dom 中有数据就是布局的问题了。2 今天在 overlay 中套了一个 list, 发现设 flex : 1 是没用的,必须设置一个固定高度才能显示。Ext.define('MyTest.view.Overlay', { extend 阅读全文
posted @ 2014-02-23 13:21 LeslieFang 阅读(598) 评论(0) 推荐(0) 编辑
摘要: sencha touch list1 默认每一项的高度会自动适应其内容。2 当每一个 item 的高度都相同且不变时, 设置 itemHeight 为固定值 和 variableHeights 为 false,可以优化性能,因为不用去动态计算每一项的高度。3 infinite 属性对底层做了优化,大体是infinite 为 false 时,每一个 item 都对应一个 dom 元素,当 list 有很多项时肯定影响性能。 当 infinite 为 true 时,假设一屏能显示 10 条,底层只有 10 个 dom 元素, 当滚动时只循环这 10 个 dom,所以性能与 item 的个数没有关系 阅读全文
posted @ 2013-12-23 21:56 LeslieFang 阅读(1359) 评论(0) 推荐(0) 编辑
摘要: 继承可以达到代码的复用,利于维护和扩展。sencha touch 中可以通过 extend 实现单继承,通过 mixins 实现多继承。mixins 也很像实现接口,不过这些接口的方法已经实现了,不用自己写了。当然也可以复写基类的方法。1 extend 继承Ext.define('Person', { constructor : function(name, age) { this.name = name; this.age = age; }, walk : function() { console.log('Person walk'... 阅读全文
posted @ 2013-12-21 10:19 LeslieFang 阅读(588) 评论(0) 推荐(0) 编辑
摘要: sencha touch 中添加手势识别非常简单,就是监听 dom 元素的 move 事件:1. 为你的 view 注册 swipe 事件// 为当前 view 注册手势滑动事件Ext.get('myTouchView').on('swipe', 'onViewSwipe', this);2. 判断滑动方向// 手势滑动监听事件onViewSwipe : function(e, target, options, eOpts) { if (e.direction === 'left' && e.distance &g 阅读全文
posted @ 2013-12-16 22:05 LeslieFang 阅读(3199) 评论(0) 推荐(0) 编辑