鸿洋大神的博客笔记汇总

这是一篇汇总博客,涵盖了鸿洋在Android开发中的深入解析,包括HorizontalScrollView的自定义ViewGroup,TagFlowLayout解析,各种进度条实现,RecyclerView的高级用法,以及Fragment的全面探讨。同时,讲解了DialogFragment的创建,Context的理解,和屏幕适配的策略。
Android 手把手教您自定义ViewGroup(一)  http://blog.youkuaiyun.com/lmj623565791/article/details/38339817
1、ViewGroup的职责是啥? 
给childView计算出建议的宽和高和测量模式 ;决定childView的位置;为什么只是建议的宽和高,而不是直接确定呢,别忘了childView宽和高可以设置为wrap_content,这样只有childView才能计算出自己的宽和高。
2、View的职责是啥?
View的职责,根据测量模式和ViewGroup给出的建议的宽和高,计算出自己的宽和高;同时还有个更重要的职责是:在ViewGroup为其指定的区域内绘制自己的形态。
3、ViewGroup和LayoutParams之间的关系?
这是因为每个ViewGroup需要指定一个LayoutParams,用于确定支持childView支持哪些属性,比如LinearLayout指定LinearLayout.LayoutParams等。如果大家去看LinearLayout的源码,会发现其内部定义了LinearLayout.LayoutParams,在此类中,你可以发现weight和gravity的身影。
4.从API角度进行浅析
上面叙述了ViewGroup和View的职责,下面从API角度进行浅析。
View的根据ViewGroup传人的测量值和模式,对自己宽高进行确定(onMeasure中完成),然后在onDraw中完成对自己的绘制。
ViewGroup需要给View传入view的测量值和模式(onMeasure中完成),而且对于此ViewGroup的父布局,自己也需要在onMeasure中完成对自己宽和高的确定。此外,需要在onLayout中完成对其childView的位置的指定。


Android 自定义ViewGroup 实战篇 -> 实现FlowLayout  http://blog.youkuaiyun.com/lmj623565791/article/details/38352503/



http://blog.youkuaiyun.com/lmj623565791/article/details/46405409   Android 自己实现 NavigationView [Design Support Library(1)]
对于上述NavigationView可能也会存在定制上的问题,比如我希望选中的Item左边有个高亮的竖线之类的效果。那么,针对于各种需求,想要能解决各种问题,最好的方式就是说对于NavigationView的效果自己可以实现。
解决思路,参考NavigationView源码,其实就是一个多种item的listview,上面addHeaderview




http://blog.youkuaiyun.com/lmj623565791/article/details/39185641  Android 自定义控件打造史上最简单的侧滑菜单

解决思路:写一个自定义viewgroup去继承HorizontalScrollView



http://blog.youkuaiyun.com/lmj623565791/article/details/39257409   Android 高仿 QQ5.0 侧滑菜单效果 自定义控件来袭
解决思路:(1)我们可以在滑动的时候,不断的改变内容区域的大小;如何改变呢?我们在菜单出现的整个过程中,不断记录菜单显示的宽度与其总宽度的比值,是个从0到1的过程,然后把0~1转化为1~0.7(假设内容区域缩小至0.7);不断去缩小内容区域
           (2)在onScrollChanged中去实现它




http://blog.youkuaiyun.com/lmj623565791/article/details/41531475  Android DrawerLayout 高仿QQ5.2双向侧滑菜单  
解决思路:DrawerLayout的使用


http://blog.youkuaiyun.com/lmj623565791/article/details/39670935   Android 实现形态各异的双向侧滑菜单 自定义控件来袭


http://blog.youkuaiyun.com/lmj623565791/article/details/48393217    Android TagFlowLayout完全解析 一款针对Tag的布局






http://blog.youkuaiyun.com/lmj623565791/article/details/43371299   Android 打造形形色色的进度条 实现可以如此简单


http://blog.youkuaiyun.com/lmj623565791/article/details/45059587   Android RecyclerView 使用完全解析 体验艺术般的控件


http://blog.youkuaiyun.com/lmj623565791/article/details/51118836   为RecyclerView打造通用Adapter 让RecyclerView更加好用


http://blog.youkuaiyun.com/lmj623565791/article/details/51854533  Android 优雅的为RecyclerView添加HeaderView和FooterView




http://blog.youkuaiyun.com/lmj623565791/article/details/43131133   Android 打造炫目的圆形菜单 秒秒钟高仿建行圆形菜单


http://blog.youkuaiyun.com/lmj623565791/article/details/42628537  Android Fragment 你应该知道的一切
这篇文章是对Android programming the big nerd ranch guide 一书的总结
(1)在Fragment中存在startActivityForResult()以及onActivityResult()方法,但是呢,没有setResult()方法,用于设置返回的intent,这样我们就需要通过调用getActivity().setResult(ListTitleFragment.REQUEST_DETAIL, intent);。
(1)fragment能够从Activity中接收返回结果,但是其自设无法产生返回结果,只有Activity拥有返回结果。
(2)FragmentPagerAdapter:对于不再需要的fragment,选择调用detach方法,仅销毁视图,并不会销毁fragment实例。
FragmentStatePagerAdapter:会销毁不再需要的fragment,当当前事务提交以后,会彻底的将fragmeng从当前Activity的FragmentManager中移除,state标明,销毁时,会将其onSaveInstanceState(Bundle outState)中的bundle信息保存下来,当用户切换回来,可以通过该bundle恢复生成新的fragment,也就是说,你可以在onSaveInstanceState(Bundle outState)方法中保存一些数据,在onCreate中进行恢复创建。
(3)Fragment间的数据传递:dialog.setTargetFragment(ContentFragment.this, REQUEST_EVALUATE);


http://blog.youkuaiyun.com/lmj623565791/article/details/37970961   Android Fragment 真正的完全解析(上)


 Android Fragment 真正的完全解析(下)  http://blog.youkuaiyun.com/lmj623565791/article/details/37992017




Android 官方推荐 : DialogFragment 创建对话框  http://blog.youkuaiyun.com/lmj623565791/article/details/37815413
http://blog.youkuaiyun.com/lmj623565791/article/details/40481055   Android Context 上下文 你必须知道的一切
实际上,只要把握住一点,凡是跟UI相关的,都应该使用Activity做为Context来处理;其他的一些操作,Service,Activity,Application等实例都可以,当然了,注意Context引用的持有,防止内存泄漏。





http://blog.youkuaiyun.com/lmj623565791/article/details/45460089   Android 屏幕适配方案


1.多用match_parent
2.多用weight
3.自定义view解决


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值