0

Je suis très heureux avec ce site. J'apprends beaucoup.FrameLayout ne pas utiliser les styles correctement

Aujourd'hui, je doute a surgi. Et je veux mettre un style à un FrameLayout. et ne pas utiliser.

Le style est la suivante:

<style name="textAsk"> 
     <item name="android:textColor">#000000</item> 
     <item name="android:padding">2dp</item> 
     <item name="android:minWidth">88dp</item> 
     <item name="android:minHeight">36dp</item> 
     <item name="android:textSize" >18dp</item> 
     <item name="android:layout_marginRight">12dp</item> 
     <item name="android:layout_marginLeft">12dp</item> 
     <item name="android:layout_marginTop">5dp</item> 
    </style> 

je montre des fragments qui changent dans un FrameLayout. Chaque fragment contient un TextView avec un texte dedans.

Il y a beaucoup de fragments, et je voudrais définir un style, commun, pour tous les TextViews, afin de gagner du temps et de ne pas configurer le style dans chaque TextView.

J'avais essayé ce code:

<FrameLayout 
    android:id="@+id/fragmentaskGRP1" 
    android:layout_width="match_parent" 
    android:layout_height="450dp" 
    android:layout_centerHorizontal="true" 
    android:layout_marginTop="5dp" 
    style="@style/textAsk"/> 

Mais la seule chose qui fonctionne pour moi est:

<item name="android:layout_marginRight">12dp</item> 
    <item name="android:layout_marginLeft">12dp</item> 
    <item name="android:layout_marginTop">10dp</item> 

Merci beaucoup pour tout

Répondre

0

Le FrameLayout ne prend pas en charge l'attribut textColor ou textSize (API). Donc, il n'est jamais défini pour FrameLayout et ignoré. Voir la section des propriétés de style du guide Styles and Themes pour plus d'informations.

Citation du Guide:

Cependant, si vous appliquez un style à une vue qui ne supporte pas toutes les propriétés de style, la vue s'appliquera uniquement les propriétés qui sont pris en charge et simplement ignorer les autres .

Définir les styles relatifs au texte dans une définition de style distinct et l'utiliser pour celui-ci pour les vues correspondants comme TextView

0

La chose est que des vues de l'enfant n'hérite pas des styles de leur encadrement ViewGroup. Les styles peuvent avoir des parents, mais dans votre cas, TextView ne vont pas obtenir ces attributs du FrameLayout.

0

Les autres styles ne seront pas appliqués à des fragments. Vous devez créer une autre logique pour appliquer des styles à tous les fragments (très probablement, vous devrez appliquer des styles individuellement à chaque fragment)

FrameLayout n'a rien à voir avec le texte, donc textColor, textSize n'aura aucun effet.

minWidth, minHeight sont les propriétés de View, il pense qu'ils devraient fonctionner.