Monday, July 20, 2015
推荐一本设计模式的书
原来,看书也是很爽的。前提是正版的哈哈。
这几天,一直想抽点时间看书。但是,一直抽不出时间来。我晕,时间就像是海绵。
早上翻阅了几页,《大话设计模式》 写的还不错。适合刚入门的初级程序员,我们的代码还有很多需要提高的地方,不像我们想象的那样。我们距离写出完美的代码。还有很长的一段路需要走呢!
好久没看书了。头一回有喜欢看书的感觉!喜欢纸张的感觉!
老爹
今天,老爹给我打了个电话。让我放宽心,总体的意思就是这么个意思,不想让我想太多,只要我自己过的不错就好了。很多时候,总是为我着想的太多了,而忘记了自己。哈哈,是的,健康才是最重要的,其他的都是其次的。因为,健康是1,后面的是0,如果没有了1,后面有再多的0也是枉然。
很感激老爸,为我付出的这么多,是的父母对孩子的那份爱。孩子对父母永远也无法奇迹。只要,我能够帮到的忙,我一定会尽全力的去帮我爸妈。我之前还想过,自己的钱为什么要这样花呢?可是,父母合适想过这些呢?在我没有钱的时候,二胡没说,就给我打过来了。从来没说要我还钱。自己呢?人感觉无敌紫铜了。
未来就在我的脚下。走起!
很感激老爸,为我付出的这么多,是的父母对孩子的那份爱。孩子对父母永远也无法奇迹。只要,我能够帮到的忙,我一定会尽全力的去帮我爸妈。我之前还想过,自己的钱为什么要这样花呢?可是,父母合适想过这些呢?在我没有钱的时候,二胡没说,就给我打过来了。从来没说要我还钱。自己呢?人感觉无敌紫铜了。
未来就在我的脚下。走起!
论超前消费
今天,我看到弟弟发的说说了。说自己失业在家里面,不知道该做什么呢?
时间,过的真快啊。是啊,如果自己一个人失业在家里面,我的内心真的很空虚啊。卧槽。再说了,别人都在上班。如果,我不上班,我吃什么,我喝什么?再说了,我还有老婆呢,总不能让老婆孩子跟我受苦吧。自己的真的很不幸啊。还有自己的车贷跟房贷。我去,生活压力真的山大啊。
生活中,不如意的事情总有发生。很多时候,我们真的额无法预测我们的生活,哈哈。哭着还是笑着。我们都需要去面对我们不想面对的生活,生活的责任与自己的义务。生活总是如此的美好。未来的时光就在自己的脚下。生活是如此的美好。未来的生活总是会变的更加美满的!
ahjesus Axure RP 7.0注册码
ahjesus Axure RP 7.0注册码
用户名:axureuser
序列号:8wFfIX7a8hHq6yAy6T8zCz5R0NBKeVxo9IKu+kgKh79FL6IyPD6lK7G6+tqEV4LG
接口的向下转型到子类
今天,遇到一个问题,在Activty传递的时候我们 需要当前Acitvity 自定义View 中的数据传递过去。 但是在跳转的时候写的是 CustomDeatailEntity. 在自定义View中的数据的处理是 使用接口实现的,就是让CustomDeatailEntity implements interfaceDemo 中的方法,这种方案是十分方便的!
卧槽 我好喜欢啊!
实现方案:
1 可以将接口 向下转型成子类。
2 问题,一开始运行的时候报错了。我擦,竟然是CustomDeatailEntity的内部类没有实现Seriable 接口。这样的话,对象没有保存对象。
报的错误:
Caused by: java.io.NotSerializableException: com.eallcn.chowagent.entity.CustomerDetailEntity$Customer_info
at java.io.ObjectOutputStream.writeNewObject(ObjectOutputStream.java:1342)
at java.io.ObjectOutputStream.writeObjectInternal(ObjectOutputStream.java:1649)
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:1495)
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:1459)
at java.io.ObjectOutputStream.writeFieldValues(ObjectOutputStream.java:957)
at java.io.ObjectOutputStream.defaultWriteObject(ObjectOutputStream.java:360)
at java.io.ObjectOutputStream.writeHierarchy(ObjectOutputStream.java:1052)
at java.io.ObjectOutputStream.writeNewObject(ObjectOutputStream.java:1382)
at java.io.ObjectOutputStream.writeObjectInternal(ObjectOutputStream.java:1649)
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:1495)
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:1459)
at android.os.Parcel.writeSerializable(Parcel.java:1311)
at android.os.Parcel.writeValue(Parcel.java:1264)
at android.os.Parcel.writeArrayMapInternal(Parcel.java:618)
at android.os.Bundle.writeToParcel(Bundle.java:1692)
at android.os.Parcel.writeBundle(Parcel.java:636)
at android.content.Intent.writeToParcel(Intent.java:7385)
at android.app.ActivityManagerProxy.startActivity(ActivityManagerNative.java:2220)
at android.app.Instrumentation.execStartActivity(Instrumentation.java:1434)
at android.app.Activity.startActivityForResult(Activity.java:3534)
at android.app.Activity.startActivityForResult(Activity.java:3495)
at android.support.v4.app.FragmentActivity.startActivityForResult(FragmentActivity.java:820)
at com.eallcn.chowagent.ui.activity.BaseActivity.startActivityForResult(BaseActivity.java:140)
at android.app.Activity.startActivity(Activity.java:3737)
at android.app.Activity.startActivity(Activity.java:3705)
at com.eallcn.chowagent.ui.control.NavigateManager.goToCustomerRecommendAvailabilityActivity(NavigateManager.java:601)
Android ViewPager 预加载的研究
这两天写个日历,我也是操了。Viewpager 的预加载是很方便的,但是,如何处理好预加载的问题的确是很头疼的问题。因为,有的时候你需要去刷新当前的界面的时候,你获取不到,当前显示的Fragment or View. So 你就没有办法操作了。日历就是这么要求的!
简单介绍几个方法:
1 cardPagerViewFragment.getUserVisibleHint()
源码介绍说显示当前的可见的View or fragment.
我们都知道ViewPager 预加载的生命周期,不知道的话一会介绍!卧槽,直接返回的是下一个fragment的 VisibleHint()
如图: you can see this case: i only scroll a viewpager.
when iscroll to page=1 the 1page return false; 2 page return ture; because the ViewPager preLoad the next page!
2 简单的介绍一下Viewpager 加载Fragment 的生命周期,我用的是V4的FragmentActivty FrgamenStatePagerAdapter.
2.1一开始初始化的时候:预加载第一和第二个Frgament
开始的时候加载了两个Fragment.这就是预加载的问题。
2.2当你从第0页滑到第1页的时候:
这个时候我们看到了 2 已经加载。我们在所有的语言中,index 都是从0开始计算的。所以,这里其实加载的是第三页的内容。所以,这个时候你去调用Adapter,getCurrentItem()
返回的Fragment 和View 的对象,都是第三页的对象实体。所以,一切方法获取到的都是不对的对象(都是下一页的对象实体)。
2.3从第1页滑到第2页。
首先,释放了Page0的资源。 然后创建 Page3 的页面的内容。
2.4 从第2页滑动到第1页
首先释放了Pager 3 也面的内容。然后去加载 Page1 的内容。
2.5 从0 ---> 1页面 的时候
这个时候,内存释放了Page 2 的内容。
2.6 0 退出的时候。
先释放 1 的资源。
再释放 0 的资源。
到这里我们已经很了解 ViewPager 的预加载;
3 the source sayL the method can limit the prepage of Viewapger.然而并没有什么卵用。
mViewapger.setOffscreenPageLimit(0);
/**
* Set the number of pages that should be retained to either side of the
* current page in the view hierarchy in an idle state. Pages beyond this
* limit will be recreated from the adapter when needed.
*
* <p>This is offered as an optimization. If you know in advance the number
* of pages you will need to support or have lazy-loading mechanisms in place
* on your pages, tweaking this setting can have benefits in perceived smoothness
* of paging animations and interaction. If you have a small number of pages (3-4)
* that you can keep active all at once, less time will be spent in layout for
* newly created view subtrees as the user pages back and forth.</p>
*
* <p>You should keep this limit low, especially if your pages have complex layouts.
* This setting defaults to 1.</p>
*
* @param limit How many pages will be kept offscreen in an idle state.
*/
4 这里还没有找到很好地方案;
时间换空间
空间换时间
方案一:
如果,你想要预加载的话,现在还没有很好地方案;
方案二:
禁用Viewpager 的预加载, 只能修改源码!
自己搜一下吧!很简单的!
这是禁掉预加载之后的ViewPager
对于显示的效果上 是很有影响的,用户的体验度有一定的影响,很多时候 鱼与熊掌不可兼得!
Subscribe to:
Posts (Atom)















