CalendarComponent
CalendarComponent copied to clipboard
手机锁屏后再解锁,日历的高度会变大
@dengshiwei
@dengshiwei
同样发现了这个,怀疑是自定义控件中OnMeasure这块的问题吧。
确实,OnMeasure中的rowsize尺寸在一直增长,不知道什么情况
@lv910929 @jokerknight 我早晨用平板测试的,没出现啊!
@dengshiwei ,你用小米手机测一下就知道了
11-17 15:26:50.572 9234-9234/com.bdhome.searchs E/MonthView.java: [ (MonthView.java:79)#OnMeasure ] 行数:------6 11-17 15:26:50.572 9234-9234/com.bdhome.searchs E/MonthView.java: [ (MonthView.java:80)#OnMeasure ] 行高:------120.0 11-17 15:26:50.572 9234-9234/com.bdhome.searchs E/MonthView.java: [ (MonthView.java:82)#OnMeasure ] 日历高度:-------720 11-17 15:26:50.572 9234-9234/com.bdhome.searchs E/MonthView.java: [ (MonthView.java:79)#OnMeasure ] 行数:------6 11-17 15:26:50.572 9234-9234/com.bdhome.searchs E/MonthView.java: [ (MonthView.java:80)#OnMeasure ] 行高:------120.0 11-17 15:26:50.572 9234-9234/com.bdhome.searchs E/MonthView.java: [ (MonthView.java:82)#OnMeasure ] 日历高度:-------720 11-17 15:26:51.052 9234-9234/com.bdhome.searchs I/Timeline: Timeline: Activity_idle id: android.os.BinderProxy@15dd1a90 time:268206264 11-17 15:26:56.772 9234-9234/com.bdhome.searchs E/MonthView.java: [ (MonthView.java:79)#OnMeasure ] 行数:------6 11-17 15:26:56.782 9234-9234/com.bdhome.searchs E/MonthView.java: [ (MonthView.java:80)#OnMeasure ] 行高:------144.0 11-17 15:26:56.782 9234-9234/com.bdhome.searchs E/MonthView.java: [ (MonthView.java:82)#OnMeasure ] 日历高度:-------864 11-17 15:26:56.782 9234-9234/com.bdhome.searchs E/MonthView.java: [ (MonthView.java:79)#OnMeasure ] 行数:------6 11-17 15:26:56.782 9234-9234/com.bdhome.searchs E/MonthView.java: [ (MonthView.java:80)#OnMeasure ] 行高:------144.0 11-17 15:26:56.782 9234-9234/com.bdhome.searchs E/MonthView.java: [ (MonthView.java:82)#OnMeasure ] 日历高度:-------864
我也遇到这个问题了,手机是红米Note2 ,Android 5.0.2,;日历的高度会变大
问题解决了(在小米手机,华为手机已经试验过暂无出现日历高度变大问题); 在MonthView中进行修改:
@Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { int widthMode = MeasureSpec.getMode(widthMeasureSpec); int widthSize = MeasureSpec.getSize(widthMeasureSpec); int heightMode = MeasureSpec.getMode(heightMeasureSpec); int heightSize = MeasureSpec.getSize(heightMeasureSpec); if(widthMode == MeasureSpec.AT_MOST){ widthSize = (int) (300 * density); } if(heightMode == MeasureSpec.AT_MOST){ heightSize = (int) density * 200; } if(widthMode == MeasureSpec.AT_MOST){ widthSize = (int) density * 300; } width = widthSize; NUM_ROWS = 10; //本来是想根据每月的行数,动态改变控件高度,现在为了使滑动的左右两边效果相同,不适用getMonthRowNumber();
// int heightSize = (int) (NUM_ROWS * rowSize-dip2px(40)); setMeasuredDimension(widthSize, heightSize); }
按照你这样写,我日历控件都不显示了。 @xhg221
@lv910929你们是怎么出现的,我在华为上都没有出现,
你用小米手机一测就知道了
@lv910929 @jokerknight @xhg221 已修复,辛苦各位了
求问,改哪里解决的?谢谢!