最近在看郭霖大神的《第一行代码》,学习到了碎片这块内容。跟着大神的脚步,写了一遍FragmentBestPracticeDemo。
这个demo,虽然小,但是就如名字一样,小而精,练习到的内容,还挺多的。涉及了最重要的Fragment,还有RecyclerView和屏幕适配。
其中屏幕适配,我觉得有必要记录一下。
先看下效果:
没错!这是同一个程序呈现的效果!神奇吧!这都归功于android优秀的屏幕适配方案。
这个项目中,区分是否是手机还是平板用到了‘最小宽度限定符(Smallest-width Qualifier)’,通过判断终端屏幕宽度是否大于限定符要求的大小,来决定加载哪个布局。
上图意思是说,屏幕宽度大于600dp的用下边布局,小于或等于的用上边布局。
那么代码里,我们怎么判断呢?
因为不同屏幕宽度,加载的布局是不同的,小于600dp,也就是手机的布局,只显示了标题列表,需要点击后才显示内容。所以我们只需要判断布局里是否有内容的布局id就可以了。如果没有内容布局的id,说明当前的终端是手机。然后根据这个已知条件,去给view填充数据就可以了。