【发布时间】:2014-10-29 17:07:20
【问题描述】:
我正在尝试创建可折叠的日历。
我在 ViewPager 中使用自定义的 calendarView,所以当按下展开/折叠按钮时,我的 calendarView 动画会折叠所有日历周,只有一个日历周。
目标是在展开时滑动月份(按我的意愿工作)并在折叠时滑动周。
calendarView 下方是 ListView 的一些事件,当用户折叠日历时 - listView 高度必须改变。
问题是当我尝试在 ViewPager 中折叠 calendarView 时,他没有改变高度。
calendarView 是一个带有子视图的 LinearLayout,当它不在 ViewPager 中时,它会动画并改变大小。
我正在使用 little sn-p 将 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 布局但没有运气。
请帮我解决这个问题,也许有提示。
我的问题与this question 非常相似
【问题讨论】:
标签: android android-viewpager height expandable