Vector Drawable && Animated Vector Drawable
-
通过两个
support
包即可将原本使用在Lollipop
上的特性使用到更低的版本中.
具体配置根据gradle版本不同而有所不同,参见:官方博客介绍 -
尽量使用
AppCompat
和app:srcCompat
来使用vector drawable
,而动态改变
依然使用setImageResource()
即可.
AppCompat DayNight Theme
步骤一般如下
- 使用主题继承
Theme.AppCompat.DayNight
,在需要的清单文件中配置 - 在
setContentView
之前,setLocalNightMode()
(根据uiMode
的Configuration
来设置相应的NightMode
) - 在
values
,values-night
目录把资源分开,将相应的属性应用到xml
中,系统则会自动匹配. - 如果使用标准的
AppCompat
样式或者颜色是从主题里(比如从android:textColorPrimary
)得到,系统则会自动更新。
Bottom Sheets
通过CoordinatorLayout
联动,配合相应的behavior
工作,可以在5中状态间切换
- STATE_COLLAPSED : 折叠状态(默认状态)
- STATE_DRAGGING : 中间状态,用户可上下拖动
- STATE_SETTLING : 释放瞬间
- STATE_EXPANDED : 完全展开状态
- STATE_HIDDEN : 如果启用,用户可以下滑完全隐藏
sheet
通过添加
BottomSheetCallback
来监听状态的改变
bottom sheet
中的滚动容器必须支持嵌套滚动(如NestedScrollView
或RecyclerView
)
BottomSheetDialog
和BottomSheetDialogFragment
提供了模态bottom sheets
用例
RecyclerView WRAP_CONTENT
LayoutManager
在新版本中增加了自动测量
的特性.可以让RecyclerView
的一个dimension
设置为WRAP_CONTENT
- 可以通过API
setAutoMeasureEnabled(true)
来支持自动测量.
学习 demo :liaohuqiu/android-support-23.2-sample
扩展阅读: