2016-01-26 2 views
1

J'utilise mediarouter-v7 v23.1.1 pour afficher une boîte de dialogue de sélecteur de routeur chromecast/media. Maintenant, j'essaie de style cette chose - alors que je pouvais changer la couleur de fond et le style de texte de l'élément de liste avec ceci:Comment nommer le titre d'une boîte de dialogue MediaRouter?

<style name="Theme.MediaRouter.Light"> 
    <item name="android:background">@color/orange</item> 
    <item name="mediaRouteChooserPrimaryTextStyle">@style/my_custom_style</item> 
</style> 

je ne pouvais passer outre le style du titre de la boîte de dialogue. Ceci et d'autres tentatives ont échoué:

<style name="Theme.MediaRouter.Light"> 
    <item name="android:windowTitleStyle">@style/my_title_style</item> 
</style> 
<style name="my_item_style"> 
    <item name="android:textColor">@color/blue</item> 
</style> 

Comme je l'ai bien compris, une boîte de dialogue a sa propre fenêtre, donc android:windowTitleStyle de la (dialogue) thème que j'Override dans mes styles personnalisés devraient être appliqués, mais ce ne est pas. J'ai également examiné l'implémentation de la boîte de dialogue mediarouter pour voir s'ils font quelque chose de fantaisie (comme masquer la fenêtre et ajouter un élément personnalisé comme titre), mais ils ne le font pas, ils appellent simplement setTitle(...) sur l'instance Dialog.

Qu'est-ce que je fais mal?

+0

Copie possible de [thème de dialogue de connexion MediaRouteActionProvider] (http://stackoverflow.com/questions/24245926/mediarouteactionprovider-connection-dialog-theme) –

Répondre

0

Malheureusement, cette boîte de dialogue ne suit pas le thème standard (les boîtes de dialogue sous Android sont toutes assez peu conviviales en général, mais celle-ci est parmi les plus difficiles à utiliser). Étant donné que cette boîte de dialogue est fournie par le routeur de médias, vous ne pouvez fournir un thème personnalisé que si vous le remplacez complètement par votre propre boîte de dialogue.

Vous pouvez essayer et remplacer le sous-classement MediaRouteDialogFactory méthode onCreateChooserDialogFragment() et passer votre mise en œuvre du ActionProvide:

mediaRouteActionProvider.setDialogFactory (yourDialogFactoryImlementation)

Vous pouvez jeter un oeil à la CCL où je fais la même chose non pour la boîte de dialogue du sélecteur mais pour le contrôleur

+0

Ceci est copié r, askanything vous ne comprenez pas – geniushkg

+0

Pouvez-vous s'il vous plaît ajouter la source comme référence? –

+1

@ThomasKeller http://stackoverflow.com/questions/24245926/mediarouteactionprovider-connection-dialog-theme, et ce blog est aussi utile: http://explod.io/setting-the-theme-of-mediaroutechooserdialog/ – geniushkg