鸿洋大神的博客笔记汇总
2017-05-10 17:26
323 查看
Android 手把手教您自定义ViewGroup(一) http://blog.csdn.net/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.csdn.net/lmj623565791/article/details/38352503/
http://blog.csdn.net/lmj623565791/article/details/46405409 Android 自己实现 NavigationView [Design Support Library(1)]
对于上述NavigationView可能也会存在定制上的问题,比如我希望选中的Item左边有个高亮的竖线之类的效果。那么,针对于各种需求,想要能解决各种问题,最好的方式就是说对于NavigationView的效果自己可以实现。
解决思路,参考NavigationView源码,其实就是一个多种item的listview,上面addHeaderview
http://blog.csdn.net/lmj623565791/article/details/39185641 Android 自定义控件打造史上最简单的侧滑菜单
解决思路:写一个自定义viewgroup去继承HorizontalScrollView
http://blog.csdn.net/lmj623565791/article/details/39257409 Android 高仿 QQ5.0 侧滑菜单效果 自定义控件来袭
解决思路:(1)我们可以在滑动的时候,不断的改变内容区域的大小;如何改变呢?我们在菜单出现的整个过程中,不断记录菜单显示的宽度与其总宽度的比值,是个从0到1的过程,然后把0~1转化为1~0.7(假设内容区域缩小至0.7);不断去缩小内容区域
(2)在onScrollChanged中去实现它
http://blog.csdn.net/lmj623565791/article/details/41531475 Android DrawerLayout 高仿QQ5.2双向侧滑菜单
解决思路:DrawerLayout的使用
http://blog.csdn.net/lmj623565791/article/details/39670935 Android 实现形态各异的双向侧滑菜单 自定义控件来袭
http://blog.csdn.net/lmj623565791/article/details/48393217 Android TagFlowLayout完全解析 一款针对Tag的布局
http://blog.csdn.net/lmj623565791/article/details/43371299 Android 打造形形色色的进度条 实现可以如此简单<
97ed
br />
http://blog.csdn.net/lmj623565791/article/details/45059587 Android RecyclerView 使用完全解析 体验艺术般的控件
http://blog.csdn.net/lmj623565791/article/details/51118836 为RecyclerView打造通用Adapter 让RecyclerView更加好用
http://blog.csdn.net/lmj623565791/article/details/51854533 Android 优雅的为RecyclerView添加HeaderView和FooterView
http://blog.csdn.net/lmj623565791/article/details/43131133 Android 打造炫目的圆形菜单 秒秒钟高仿建行圆形菜单
http://blog.csdn.net/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.csdn.net/lmj623565791/article/details/37970961 Android Fragment 真正的完全解析(上)
Android Fragment 真正的完全解析(下) http://blog.csdn.net/lmj623565791/article/details/37992017
Android 官方推荐 : DialogFragment 创建对话框 http://blog.csdn.net/lmj623565791/article/details/37815413
http://blog.csdn.net/lmj623565791/article/details/40481055 Android Context 上下文 你必须知道的一切
实际上,只要把握住一点,凡是跟UI相关的,都应该使用Activity做为Context来处理;其他的一些操作,Service,Activity,Application等实例都可以,当然了,注意Context引用的持有,防止内存泄漏。
http://blog.csdn.net/lmj623565791/article/details/45460089 Android 屏幕适配方案
1.多用match_parent
2.多用weight
3.自定义view解决
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.csdn.net/lmj623565791/article/details/38352503/
http://blog.csdn.net/lmj623565791/article/details/46405409 Android 自己实现 NavigationView [Design Support Library(1)]
对于上述NavigationView可能也会存在定制上的问题,比如我希望选中的Item左边有个高亮的竖线之类的效果。那么,针对于各种需求,想要能解决各种问题,最好的方式就是说对于NavigationView的效果自己可以实现。
解决思路,参考NavigationView源码,其实就是一个多种item的listview,上面addHeaderview
http://blog.csdn.net/lmj623565791/article/details/39185641 Android 自定义控件打造史上最简单的侧滑菜单
解决思路:写一个自定义viewgroup去继承HorizontalScrollView
http://blog.csdn.net/lmj623565791/article/details/39257409 Android 高仿 QQ5.0 侧滑菜单效果 自定义控件来袭
解决思路:(1)我们可以在滑动的时候,不断的改变内容区域的大小;如何改变呢?我们在菜单出现的整个过程中,不断记录菜单显示的宽度与其总宽度的比值,是个从0到1的过程,然后把0~1转化为1~0.7(假设内容区域缩小至0.7);不断去缩小内容区域
(2)在onScrollChanged中去实现它
http://blog.csdn.net/lmj623565791/article/details/41531475 Android DrawerLayout 高仿QQ5.2双向侧滑菜单
解决思路:DrawerLayout的使用
http://blog.csdn.net/lmj623565791/article/details/39670935 Android 实现形态各异的双向侧滑菜单 自定义控件来袭
http://blog.csdn.net/lmj623565791/article/details/48393217 Android TagFlowLayout完全解析 一款针对Tag的布局
http://blog.csdn.net/lmj623565791/article/details/43371299 Android 打造形形色色的进度条 实现可以如此简单<
97ed
br />
http://blog.csdn.net/lmj623565791/article/details/45059587 Android RecyclerView 使用完全解析 体验艺术般的控件
http://blog.csdn.net/lmj623565791/article/details/51118836 为RecyclerView打造通用Adapter 让RecyclerView更加好用
http://blog.csdn.net/lmj623565791/article/details/51854533 Android 优雅的为RecyclerView添加HeaderView和FooterView
http://blog.csdn.net/lmj623565791/article/details/43131133 Android 打造炫目的圆形菜单 秒秒钟高仿建行圆形菜单
http://blog.csdn.net/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.csdn.net/lmj623565791/article/details/37970961 Android Fragment 真正的完全解析(上)
Android Fragment 真正的完全解析(下) http://blog.csdn.net/lmj623565791/article/details/37992017
Android 官方推荐 : DialogFragment 创建对话框 http://blog.csdn.net/lmj623565791/article/details/37815413
http://blog.csdn.net/lmj623565791/article/details/40481055 Android Context 上下文 你必须知道的一切
实际上,只要把握住一点,凡是跟UI相关的,都应该使用Activity做为Context来处理;其他的一些操作,Service,Activity,Application等实例都可以,当然了,注意Context引用的持有,防止内存泄漏。
http://blog.csdn.net/lmj623565791/article/details/45460089 Android 屏幕适配方案
1.多用match_parent
2.多用weight
3.自定义view解决
相关文章推荐
- 郭霖大神的6篇博客笔记汇总
- Android开发--大神博客汇总
- [置顶] 搞IT,算法编程不错的学习网址 & 一些专栏博客大神的地址(汇总)
- 关于博客笔记大汇总,持续更新迭代
- jmeter大神博客笔记
- spring自学的深度笔记--博客汇总
- CSDN博客大神汇总
- Android 开发--CSDN博客大神汇总
- 阅读大神博客笔记
- 学习鸿洋大神的自定义View(一)的笔记
- java JDK8 学习笔记——助教学习博客汇总
- iOS大神博客汇总
- Android 开发--CSDN博客大神汇总
- Android 高仿 QQ5.0 侧滑菜单效果 自定义控件来袭【学习鸿洋_视频博客笔记总结】
- 读安卓开发艺术探索和鸿洋博客有关于binder知识的笔记
- 关于Android开发大神的博客汇总
- Android 开发--CSDN博客大神汇总
- java反射的理解与应用(某大神博客中看到的博文,写的真的太好了,果断转载作为笔记)
- React Router笔记 -- 摘自阮一峰大神博客
- Android开发大神博客汇总