Aucun style ViewPagerIndicator en combinaison avec SherlockActionBar
Je suis en train de mettre en œuvre les ViewPagerIndicator avec SherlockActionBar. Il fonctionne: je peux glisser les fragments, mais le style ne fonctionne pas!
Il ressemble à ceci:
sujets connexes: https://github.com/JakeWharton/Android-ViewPagerIndicator/issues/66
Je sais ce qui ne va pas:
Dans l'échantillon de VPI, le style d'une page est définie dans AndroidManifest.xml par (par exemple)
<activity
android:name=".SampleTabsDefault"
android:theme="@style/Theme.PageIndicatorDefaults">
</activity>
Mais lorsque j'ajoute que android:thème élément de ma propre Manifest.xml j'obtiens l'exception suivante:
03-16 11:06:24.400: E/AndroidRuntime(483): Caused by: java.lang.IllegalStateException: You must use Theme.Sherlock, Theme.Sherlock.Light, Theme.Sherlock.Light.DarkActionBar, or a derivative.
J'ai aussi essayé de copier le style-informations à styles.xml mais qui ne fonctionne pas.
Pouvez-vous me dire comment faire pour définir un style à la VPI?
Merci!!!!
EDIT:
Maintenant, j'ai ajouté
<activity
android:name=".SampleTabsDefault"
android:theme="@style/StyledIndicators">
</activity>
à mon Manifest.xml
et le style suivant dans styles.xml
<style name="Theme.BataApp" parent="Theme.Sherlock.Light.DarkActionBar">
<item name="actionBarStyle">@style/Widget.Styled.ActionBar</item>
<item name="android:actionBarStyle">@style/Widget.Styled.ActionBar</item>
</style>
<style name="StyledIndicators" parent="Theme.BataApp">
<item name="vpiTitlePageIndicatorStyle">@style/Widget.TitlePageIndicator</item>
<item name="vpiTabPageIndicatorStyle">@style/Widget.TabPageIndicator</item>
<item name="vpiTabTextStyle">@style/Widget.TabPageIndicator.Text</item>
</style>
Résultat: je n'ai aucune Exception, voir le style, mais j'ai maintenant, je ne peux pas voir les fragments 🙁
Le code de l'activité peut être trouvé ici: http://pastebin.com/hsNgxFDZ
Capture d'écran de la page en cours avec style:
Vous devez vous connecter pour publier un commentaire.
Afin de voir les Fragments, vous devez en quelque sorte de prolonger un Android de base-thème. Afin de voir les ViewPagerIndicator, vous devez en quelque sorte comprennent ceux de style-les définitions. La réponse est de créer votre propre thème qui s'étend de la ActionBarSherlock-thème (qui s'étend à l'Android de base-thèmes), et met en œuvre la ViewPagerIndicator-les styles.
Exemple:
Ensuite dans votre Manifeste, ensemble
android:theme="@style/myTheme"
à la<application>
ou à votre<activity>
s.Notez que vous n'avez pas à inclure tous les 4 "vpi..."-les styles; vous n'avez qu'à inclure ceux que vous utilisez. E. g. si vous êtes seulement en utilisant le CirclePageIndicator, vous n'avez qu'à inclure
<item name="vpiCirclePageIndicatorStyle">...</item>
et laisser les 3 autres élément déclarations.Fragment
s prise en appelle à tous? Avez-vous essayez de régler uneandroid:layout_height="0dp"
etandroid:layout_weight="1"
sur votreViewPager
? Pourriez-vous poster le XML de votre mise en page?<item name="android:background">@drawable/my_tab_indicator</item>
. Si vous voulez juste changer la couleur de fond des onglets, définir un arrière-plan de la ViewPagerIndicator lui-même.vpiTabTextStyle
dans la dernière version,android:textSize
etandroid:textColor
sont utilisés à la place comme une partie de laTextAppearance.TabPageIndicator
style.J'ai accidentellement supprimé android:layout_weight="1" lors de l'ajout de styles.
Donc pour les autres qui veulent mettre en œuvre VPI avec ABS:
layout.xml:
styles.xml:
Merci @Reinier! 😀