首先看一看本来的需要的样子:
时间选择器是一个三排的自定义view,在android 8.0之前的机器上一直没毛病,升级到8.0之后,效果就成下面这样了:
就变成只有一行了。
时间选择器自定义view的其中两个属性如下
<item name="android:layout_height">60dp</item>
<item name="unitHeight">48dp</item>
控件高度60dp,每一单元行的高度48dp,这样一看的话,根本放不下三行,但是自定义view的实际高度其实是在代码里面算出来的:
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
controlWidth = getWidth();
if (controlWidth != 0) {
setMeasuredDimension(getWidth(), itemNumber * unitHeight);
controlWidth = getWidt