Y compris un drawable de fond foobars ma mise en page dans Android. Idées pourquoi?
-
18-09-2019 - |
Question
Si je ne comprends pas un arrière-plan dans ma mise en page de racine alors tout rend comme je l'attends:
texte alt http://dl.dropbox.com/u/299320/correct .png
Cependant, si j'ajouter une seule ligne en ajoutant dans un arrière-plan, puis la mise en page va complètement détraqué:
texte alt http://dl.dropbox.com/u/299320/foobared .png
Le bit correspondant de la mise en page XML est:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width ="fill_parent"
android:layout_height="fill_parent"
android:paddingRight ="20dip"
android:paddingLeft ="20dip"
android:gravity ="center_vertical"
android:background ="@drawable/main_background">
Littéralement la seule différence entre les deux captures d'écran ci-dessus est l'inclusion de android:background="@drawable/main_background"
. Je vais vous donner un cookie si vous pouvez me aider:)
La solution
Quant à savoir pourquoi vous rencontrez ce que vous êtes avec l'arrière-plan, il se peut que votre image de fond s'en quelque sorte pris dans la gravité, mais c'est juste une supposition.
Pour contourner ce problème, envelopper votre tout dans un FrameLayout
. Faites le premier enfant du FrameLayout
être un ImageView
avec votre arrière-plan. Faites le deuxième enfant de la FrameLayout
soit votre attribut LinearLayout
existant (sans android:background
). Depuis FrameLayout
et RelativeLayout
permettent l'empilage, cela entraînera votre LinearLayout apparaisse au-dessus de l'image et devrait vous donner l'effet visuel que vous cherchez.