Question vue enfant Android ignore le remplissage parent


J'ai beaucoup de dispositions qui ont des racines ViewGroup différentes (LinearLayouts, RelativeLayouts, etc.). Ces vues fonctionnent comme je l’espérais, mais j’essaie maintenant d’ajouter une barre de navigation supérieure. Le problème est que les racines peuvent avoir des rembourrages différents et si j'inclus simplement ma mise en page dans chacune de ces mises en page, la largeur de la barre de navigation est limitée par le remplissage du parent. J'aimerais que cette barre de navigation ignore le remplissage gauche / droit / supérieur de la racine et soit complètement pleine en haut de la présentation. Y a-t-il quelque chose que je puisse faire dans la disposition de la barre de navigation pour y parvenir, ou suis-je condamné à devoir modifier toutes les dispositions existantes pour y répondre?


13
2018-04-15 18:22


origine


Réponses:


Bien que cela puisse sembler une très mauvaise idée, vous pourrez peut-être accomplir ce que vous recherchez en définissant l'attribut clipToPadding du parent ViewGroup sur false, puis définissez les marges négatives sur la vue enfant.

Exemple:

<LinearLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:padding="10dp"
    android:background="#EEE"
    android:clipToPadding="false">
    <TextView  
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:text="@string/hello"
        android:background="#333"
        android:layout_marginLeft="-10dp"
        android:layout_marginRight="-10dp"
        android:layout_marginTop="-10dp"/>
</LinearLayout>

L'exemple ci-dessus fonctionne, mais je suggère que vous deviez simplement mettre votre barre de navigation supérieure en dehors de ces ViewGroup contenant les paddings que vous essayez d'éviter.


29
2018-04-15 18:46



Pourquoi auriez-vous besoin de changer toutes vos dispositions? S'il ne s'agit que de votre barre de navigation qui doit ignorer le remplissage, vous pouvez simplement retirer la barre de navigation de la disposition parente actuelle, puis placer les deux dispositions dans une autre disposition sans remplissage.


3
2018-04-15 18:41



En fait, vous pouvez modifier la barre de titre par défaut: http://www.helloandroid.com/tutorials/how-create-custom-titlebar.

http://www.anddev.org/my_own_titlebar_backbutton_like_on_the_iphone-t4591.html également prouvé utile. Merci quand même!


0
2018-04-15 19:22