Я пытаюсь создать сворачиваемый календарь.ViewPager с расширяемым ребенком
Я использую пользовательский calendarView в ViewPager, поэтому, когда кнопка expand/collapse нажата, мой анимационный календарь calendarView сворачивает все календарные недели, кроме одного.
Цель - пропустить месяц при расширении (который работает так, как я хочу), и проведите недели, когда рухнет.
Ниже календарного вида является ListView с некоторыми событиями, когда пользователь сворачивает календарь - высота списка должна измениться.
Проблема в том, что я пытаюсь свернуть calendarView в ViewPager, он не меняет высоту.
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, this, this, и много больше вопросов
Моего вопрос очень похож на this вопрос
Большое спасибо, ваше решение действительно помогло. Он немного изменил работу с FragmentPagerAdpter. –
Эй, парень, я хочу попробовать ваше решение, но я задаюсь вопросом, как использовать ваш адаптер, спасибо – Tony
Используйте ваш пейджер-адаптер, как всегда, просто добавляйте код, указанный выше. – Jonez