Add animation when changing tabs

Hi I have a TabHost activity with two child actions. What would be the best solution to add left-right animations for child actions?

Yours faithfully!

+4
source share
2 answers

Hello
The best solution for this is to add animation to the layouts.
suppose you have two tabs

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); 

then tab on 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; } 

Hope this helps you understand the idea

+10
source

This can help you. The main idea is to get the current view of the tab and set the animation for it in the onTabChanged event.

 tabsHost.setOnTabChangedListener(new OnTabChangeListener() { public void onTabChanged(String tabId) { View currentView = tabsHost.getCurrentView(); currentView.setAnimation(<Your animation object goes here>); } }); 
0
source

All Articles