首先贴一个參考过的文章,写的不错: 在低版本号android系统上实现Material design应用
以下是工作中总结出来的,列出了在<5.0的设备是怎样实现material design的一些常见样式的
- 大元素
- 其它还有什么明显的大元素【待补充】
- 下拉刷新【能够实现,类似Gmail下拉刷新的样式】
- SwipeRefreshLayoutDemo 【google官方出的下来刷新。这里是一个样例】
- android-Ultra-Pull-To-Refresh
- Action Bar 【能够实现】
- Google自己的support v7 r21提供的类就可以。主要是Theme.AppCompat
- Floating action button 【能够实现】
- 开源项目 futuresimple/android-floating-action-button 比較合适,唯一的缺点就是值支持API 14以上的系统版本号
- Scrolling techniques (滚动)【能够实现】
- 开源项目 NotBoringActionBar
- Navigation drawer (导航抽屉)【能够实现】
- Google自己的support v7 r21提供的类(详细可见Support v7最新版demo里边的AppCompat→Action Bar→Navigation Drawer Toggle)
- 开源项目 kanytu/android-material-drawer-template 有Gmail样式的Navigation Drawer(展开时盖住ActionBar)
- Navigational transitions (导航转换)【可能能够,可是还没有找】
- 分2种:Parent to child, Sibling to sibling
- Tabs (导航标签)【能够实现,可是没有找】
- Bottom sheets (底部窗体)【应该能够,可是还没有找】
- 其它小元素
- 其它还有什么明显的小元素【待补充】
- Ripple Effects【能够实现】
- RippleEffect 开源项目效果最好
- SnackBar【能够实现】
- ColorSelector【能够实现】
- 开源项目MaterialDesignLibrary 里边有这个控件
- Typography 【能够实现,建议先不用】
- 事实上是2种字体:Robot – Latin, Greek, and Cyrillic scripts ;Noto – all other languages
- Color (大色块) 【能够实现】
- 与开发相关的是颜色的使用,Support v7 r21里边仅仅是定义了一个material_blue系列的颜色,并没有将20种色系所有定义到project中。实际开发其中,开发仅仅须要依照google的演示样例自定义颜色就能够了
- Layout: Metrics and Keylines (边距/间距方面的规定) 【能够实现】
- 主要针对设计,实现没有问题
- Tooltips(工具提示) 【能够实现】
- 对于触屏来说,就是长按一个图形button(无文字)会出现一个tooltip
- ActionBar已经实现了这样的机制 。这也是我强烈建议使用Google的ActionBar。而不要自己画一个看着像ActionBar的ActionBar
- Text fields (文本输入) 【部分实现】
- Support v7 r21提供的Theme.AppCompat主题已经涵盖了EditText控件,可是至于文字数与颜色变化等小特性我预计是没有的(没有调试),这个待以后补充
- Buttons 【能够实现,详细待调试】
- 这里边有4类buttons: Floating action button, Raised button, Flat button, Pulldown button
- Floating action button见上方,
- Raised button再找下开源项目。本质上是加了一个边缘的阴影
- Flat button主要用于对话框的确定/取消按钮,这个在相关对话框开源项目里边已经有了(眼下没有见到单独用的)
- Pulldown button,看截图感觉和之前的Spinner的下来列表是一样的
- Switches【能够实现。详细待调试】
- 这里边有3类:Checkbox, Radio button, Switch
- Support v7 r21里边Theme.AppCompat里边已经涵盖了上面3种控件的样式,只是颜色仅仅有Light/Drak两种
- 开源的第三方项目里边也有比較灵活的上述控件(自己又一次写的),即能够非常方便的更改颜色