2010-11-02 5 views

Répondre

10

Salut
La meilleure solution pour cela est d'ajouter de l'animation aux mises en page
supposons que vous avez deux onglets

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

puis sur le 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; 
} 

Espérons que cela vous aidera à obtenir une idée

+0

Merci pour la réponse! La chose est que j'ai un hôte d'onglet activités, pas un hôte de l'onglet vues. – Gratzi

0

Cela peut vous aider. L'idée principale est d'obtenir la vue actuelle de l'onglet et de définir l'animation correspondante dans l'événement onTabChanged.

tabsHost.setOnTabChangedListener(new OnTabChangeListener() { 

    public void onTabChanged(String tabId) { 
     View currentView = tabsHost.getCurrentView(); 
     currentView.setAnimation(<Your animation object goes here>); 
    } 
}); 
Questions connexes