ViewPager con el niño extensible
Estoy tratando de crear calendario plegable.
Estoy usando calendarView personalizado en ViewPager, así que cuando el botón de expand / collapse presionó mi calendario animate el derrumbamiento de todas las semanas del calendario excepto solamente uno.
- La recreación de fragmentos de ViewPager se reanuda pero no se ve
- Reemplazar ViewPager con Fragmento - y luego volver a navegar
- Cambiar color TabSelector en v4 ViewPager
- Error al inflacionar la clase com.google.android.youtube.player.YouTubePlayerView
- Nullpointerexception en dispatchDraw con ViewPager en fragmento anidado con PageTransformer
El objetivo es pasar el mes cuando se amplía (que funciona como quiero) y pasar semanas cuando se derrumbó.
Debajo de calendarView es ListView con algunos eventos, cuando el usuario colapse calendario – listView altura debe cambiar.
El problema es cuando intento colapsar calendarView en ViewPager, él no cambia altura.
calendarView es un LinearLayout con vistas secundarias, cuando no está en ViewPager, animando y cambiando tamaño.
Estoy usando un pequeño fragmento para establecer la altura de ViewPager para él.
@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); }
Estoy tratando de anular onMeasure en calendarView, utiliza diferentes animaciones, intentó cambiar el diseño ViewPager directamente, pero no hay suerte.
Por favor, ayúdame con este problema, tal vez hay un consejo para ello.
Encontré esto , esto , esto , y muchas más preguntas
Mi pregunta es muy similar a esta pregunta
- ViewPager - obtener una vista parcial de la página siguiente
- ViewPager con FragmentPagerAdapter no se muestra
- Las pestañas de menú no responden
- Crear evento de dragado falso para mover ViewPager alrededor
- El ViewPagerIndicator no es fácil con 1000 páginas
- Reemplazar fragmento con otro fragmento dentro de ViewPager
- Índice de fragmentos de resultados de actividad Fuera del rango: 0x20001
- Detectar el cambio de la pestaña ViewPager dentro del fragmento
Así que finalmente me di cuenta de cómo resolver mi problema, tal vez será útil.
aquí está mi PagerAdapter:
class CustomAdapter extends PagerAdapter { private View mCurrentView; ... // Saving current active item @Override public void setPrimaryItem(ViewGroup container, int position, Object object) { mCurrentView = (View) object; } public View getCurrentItem() { return mCurrentView; } }
Y esta es mi clase ViewPager
class CustomViewPager extends ViewPager { private CustomViewPagerAdapter mAdapter; ... // Set ViewPager height to currentItem @Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { int height = 0; View v = mAdapter.getCurrentItem(); if(v != null) { v.measure(widthMeasureSpec, MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED)); height = v.getMeasuredHeight(); } heightMeasureSpec = MeasureSpec.makeMeasureSpec(height, MeasureSpec.EXACTLY); super.onMeasure(widthMeasureSpec, heightMeasureSpec); } }
Con esto puedo colapsar / expand ViewPager childs y será medir su altura correctamente, y mide cuando la página se cambia con un poco de retraso.
- Android SQLite nueva versión de DB con una tabla eliminada
- cordova notificación local sonido no funciona en ios y andorid