我正在嘗試創建可摺疊的日曆。ViewPager with expandable child
我在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);
}
我試圖重寫onMeasure上calendarView,使用了不同的動畫,試圖直接改變ViewPager佈局,但沒有運氣。
請幫我解決這個問題,也許有一個提示吧。
我的問題是非常相似的this問題
非常感謝,您的解決方案確實有幫助。修改它有點與FragmentPagerAdpter一起工作。 – 2015-07-20 06:04:12
嘿,我想嘗試你的解決方案,但我想知道如何使用你的適配器,謝謝 – Tony 2016-02-24 14:26:00
一如既往地使用你的尋呼機適配器只需添加我上面提供的代碼。 – Jonez 2016-02-25 16:16:25