CountdownView icon indicating copy to clipboard operation
CountdownView copied to clipboard

文字测量问题

Open handy315 opened this issue 7 years ago • 8 comments

将天数转换成小时,小时为3位数时,显示时分秒的倒计时,小时数会紧贴后面的冒号,效果如下: 111: 23 : 00

handy315 avatar Jul 13 '17 11:07 handy315

我也遇到这样的问题。请问有解决方法吗?

zhuzhushang avatar Nov 07 '17 12:11 zhuzhushang

给下布局和代码

iwgang avatar Nov 08 '17 02:11 iwgang

listview滑动的时候,天数超过两位的,文字会被挤没了,请问有解决方法吗 image image

Selina592732122 avatar Nov 08 '17 07:11 Selina592732122

看一下图

代码 constraintlayout---->Linearlayout--->CountdownView <cn.iwgang.countdownview.CountdownView android:id="@+id/countdownView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="12dp" android:layout_marginStart="12dp" app:isConvertDaysToHours="true" app:isShowDay="false" app:isShowHour="true" app:isShowMillisecond="true" app:isShowMinute="true" app:isShowSecond="true" app:isTimeTextBold="true" app:timeTextColor="@color/count_down_text_color" app:timeTextSize="28sp" />

java 代码直接start

可能主要是因为有app:isConvertDaysToHours="true" 我测试了一下, 第一次进入,小时超过3位就会显示异常。 按home键回到主界面,在点击icon进入异常。 按back键返回,点击icon显示正常,按功能键去掉任务栈,点击icon进入异常。 点击功能键,然后再点击功能键进入界面就正常了。

zhuzhushang avatar Nov 08 '17 07:11 zhuzhushang

public boolean handlerDayLargeNinetyNine() {
	boolean isReLayout = false;
	if (isShowDay) {
		// handler large ninety nine
		if (isDayLargeNinetyNine) {
			isReLayout = true;
		}
		else if (!isDayLargeNinetyNine && mDay > 99) {
			isDayLargeNinetyNine = true;
			isReLayout = true;
		}
		else if (isDayLargeNinetyNine && mDay <= 99) {
			isDayLargeNinetyNine = false;
			isReLayout = true;
		}
	}
	return isReLayout;
}

需要加上下面这个逻辑判断,就可以了,因为有可能第一次isDayLargeNinetyNine被置为true,第二次就跑不进(!isDayLargeNinetyNine && mDay > 99)这个if里面了 if (isDayLargeNinetyNine) { isReLayout = true; }

Selina592732122 avatar Nov 08 '17 09:11 Selina592732122

@Selina592732122 这样会不会开销很大? 毕竟只需要relayout一次就好了,这样次次都relayout.

zhuzhushang avatar Nov 08 '17 09:11 zhuzhushang

@zhuzhushang 不用加relayout了,看了下他原来代码就有,只是条件进不去, image

修改下貌似就可以了 public boolean handlerDayLargeNinetyNine() { boolean isReLayout = false; if (isShowDay) { // handler large ninety nine if (isDayLargeNinetyNine) { isReLayout = true; } else if (!isDayLargeNinetyNine && mDay > 99) { isDayLargeNinetyNine = true; isReLayout = true; } else if (isDayLargeNinetyNine && mDay <= 99) { isDayLargeNinetyNine = false; isReLayout = true; } } return isReLayout; }

Selina592732122 avatar Nov 09 '17 00:11 Selina592732122

大佬们最终怎么解决的?

sunwen0402 avatar Feb 05 '18 06:02 sunwen0402