Personnalisation de la mise en œuvre de FragmentTabHost
Je suis la mise en œuvre de imbriqués les fragments de mon application en utilisant la nouvelle API 17, qui prévoit un FragmentTabHost
pour le faire. Cependant, j'ai de la difficulté avec quelques choses de base pour mon simple 2 onglet fragments à l'intérieur d'un parent de fragment:
- Je voudrais imbriquée onglets en bas (Vue1 et Vue2 onglets)
- Je voudrais personnaliser le réel onglets pour un aspect différent de la norme
Quelqu'un a travaillé avec ces avant et de savoir comment atteindre cet objectif? Voici l'exemple de code que j'ai et en cours d'exécution:
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentTabHost;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
public class FragmentTabsFragmentSupport extends Fragment {
private FragmentTabHost mTabHost;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
mTabHost = new FragmentTabHost(getActivity());
mTabHost.setup(getActivity(), getChildFragmentManager(), R.id.fragment1);
mTabHost.addTab(mTabHost.newTabSpec("Tab1").setIndicator("Simple"),
NestedFragment1.class, null);
mTabHost.addTab(mTabHost.newTabSpec("Tab2").setIndicator("Contacts"),
NestedFragment2.class, null);
return mTabHost;
}
@Override
public void onDestroyView() {
super.onDestroyView();
mTabHost = null;
}
}
J'ai essayé ce qui suit, vers le bas et alignez les languettes, mais pas de chance:
TabWidget mTabWidget = mTabHost.getTabWidget();
mTabWidget.setGravity(Gravity.BOTTOM);
mTabWidget.setVerticalGravity(Gravity.BOTTOM);
OriginalL'auteur jamis0n | 2012-11-20
Vous devez vous connecter pour publier un commentaire.
J'ai finalement obtenu vers le bas de cette. Il y a un problème avec FragmentTabHost.java qui vous permettra de toujours créer un TabHost élément pour vous, peu importe ce que vous définissez dans le XML et de le gonfler à l'avance.
En tant que tel, j'ai fait remarquer qu'une partie de code lors de l'écriture de mon propre version de FragmentTabHost.java.
Assurez-vous d'utiliser votre nouvelle version de ce dans votre mise en page XML,
<com.example.app.MyFragmentTabHost
Et bien sûr de la gonfler:
Fragment1.java:
MyFragmentTabHost.java:
OriginalL'auteur jamis0n
Dans votre code
Je veux savoir la valeur de R. id.fragment1, c'est à dire un fichier xml. Si vous me fournir la totalité du projet, il sera très utile pour moi. Je veux utiliser cette imbriquée à l'intérieur de l'onglet navigation du tiroir.
OriginalL'auteur sudipta roy
Découvrez la réponse ici pour plus d'informations sur la personnalisation des onglets et cette réponse pour plus d'informations sur la mise les onglets en bas.
R.id.fragment1
dans mon exemple ci-dessus ne fait absolument rien. Je ne crois pas que la FragmentTabHost utilise les morceaux dans le fichier XML du fichier de mise en page, à moins que je le fais correctement.J'ai été en mesure de l'obtenir pour fonctionner avec la réponse ci-dessous, par modification de la disposition à l'intérieur de la TabHost par la mise en page et le réglage de la
ParentAlignBottom = true
sur le TabWidget. Vérifier stackoverflow.com/a/3533787/288072 pour plus d'infoÊtes-vous à l'aide de cette dans une vue pager à l'aide de sherlock fragments? C'est comment je l'ai configuré et que la mise en page ne marche pas non plus. Son étrange que le fait de changer la mise en page XML pour le parent fragment de ne pas modifier la mise en page.
OriginalL'auteur Matt Swanson