Añadir animación al cambiar pestañas
Hola Tengo una actividad TabHost con dos actividades infantiles. ¿Cuál sería la mejor solución para agregar una animación "izquierda-derecha" para las actividades infantiles?
¡Atentamente!
Hola
La mejor solución para esto es agregar animación a los diseños
Suponga que tiene dos pestañas
tabs = (TabHost) this.findViewById(R.id.tabhost_id); tabs.setup(); tspec1 = tabs.newTabSpec(name_of_1st_tab) tspec1.setIndicator(....); tspec1.setContent(R.id.tab_1_layout_id); tab1Layout = (LinearLayout)findViewById(R.id.tab_1_layout_id); tspec2 = tabs.newTabSpec(name_of_2nd_tab) tspec2.setIndicator(....); tspec2.setContent(R.id.tab_1_layout_id); tab1Layout = (LinearLayout)findViewByIdR.id.tab_2_layout_id);
Luego en el TabChangedListener
tabs.setOnTabChangedListener(new OnTabChangeListener() { public void onTabChanged(String tabId) { tab1Layout.setAnimation(outToLeftAnimation()); tab2Layout.setAnimation(inFromRightAnimation()); } }); public Animation inFromRightAnimation() { Animation inFromRight = new TranslateAnimation( Animation.RELATIVE_TO_PARENT, +1.0f, Animation.RELATIVE_TO_PARENT, 0.0f, Animation.RELATIVE_TO_PARENT, 0.0f, Animation.RELATIVE_TO_PARENT, 0.0f); inFromRight.setDuration(ConstandsUsed.ANIMATIION_DURATION); inFromRight.setInterpolator(new AccelerateInterpolator()); return inFromRight; } public Animation outToLeftAnimation() { Animation outtoLeft = new TranslateAnimation( Animation.RELATIVE_TO_PARENT, 0.0f, Animation.RELATIVE_TO_PARENT, -1.0f, Animation.RELATIVE_TO_PARENT, 0.0f, Animation.RELATIVE_TO_PARENT, 0.0f); outtoLeft.setDuration(ConstandsUsed.ANIMATIION_DURATION); outtoLeft.setInterpolator(new AccelerateInterpolator()); return outtoLeft; }
Espero que esto te ayude a tener alguna idea
Esto puede ayudarle. La idea principal es obtener la vista actual de la pestaña y configurar la animación en el evento onTabChanged.
tabsHost.setOnTabChangedListener(new OnTabChangeListener() { public void onTabChanged(String tabId) { View currentView = tabsHost.getCurrentView(); currentView.setAnimation(<Your animation object goes here>); } });