android 8.0自定义view高度问题

在Android 8.0之前正常显示的三排时间选择器自定义View,在升级到8.0后变为一行。问题在于布局高度在8.0之后以XML设定为准,而非代码计算的144dp。解决方案是调整XML中的android:layout_height属性,确保足够容纳三行内容。
摘要由CSDN通过智能技术生成

首先看一看本来的需要的样子:

时间选择器是一个三排的自定义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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值