我正在尝试创建可折叠的日历。
我在ViewPager中使用自定义calendarView,在展开/折叠按钮按下时,我的calendarView会动画折叠除了一个星期之外的所有日历周。
目标是在展开时滑动月份(这正如我想要的那样),在折叠时滑动星期。
下面的calendarView是带有一些事件的ListView,当用户折叠日历时,listView的高度必须更改。
问题是当我试图在ViewPager中折叠calendarView时,它不会改变高度。
calendarView是一个LinearLayout,具有子视图,当它不在ViewPager中时,它会动画并更改大小。
我使用了一个小片段来将ViewPager的高度设置为其子项。
我在ViewPager中使用自定义calendarView,在展开/折叠按钮按下时,我的calendarView会动画折叠除了一个星期之外的所有日历周。
目标是在展开时滑动月份(这正如我想要的那样),在折叠时滑动星期。
下面的calendarView是带有一些事件的ListView,当用户折叠日历时,listView的高度必须更改。
问题是当我试图在ViewPager中折叠calendarView时,它不会改变高度。
calendarView是一个LinearLayout,具有子视图,当它不在ViewPager中时,它会动画并更改大小。
我使用了一个小片段来将ViewPager的高度设置为其子项。
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
int height = 0;
for(int i = 0; i < getChildCount(); i++) {
View child = getChildAt(i);
child.measure(widthMeasureSpec, MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED));
int h = child.getMeasuredHeight();
if(h > height) height = h;
}
heightMeasureSpec = MeasureSpec.makeMeasureSpec(height, MeasureSpec.EXACTLY);
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
}
我试图在calendarView上重写onMeasure方法,使用不同的动画效果,尝试直接改变ViewPager布局但是没有成功。
请帮我解决这个问题,也许有什么窍门可以解决。
我的问题和这个问题非常相似。