Bonjour J'ai une activité TabHost avec deux activités enfants. Quelle serait la meilleure solution pour ajouter une animation "gauche-droite" pour les activités enfants?Ajouter une animation lors du changement d'onglet
Meilleures salutations!
Bonjour J'ai une activité TabHost avec deux activités enfants. Quelle serait la meilleure solution pour ajouter une animation "gauche-droite" pour les activités enfants?Ajouter une animation lors du changement d'onglet
Meilleures salutations!
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
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>);
}
});
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