Compreso un disegnabile sfondo foobars mio layout in Android. Idee perché?
-
18-09-2019 - |
Domanda
Se non includere uno sfondo a mio layout radice rende poi tutto come mi aspetto:
alt text http://dl.dropbox.com/u/299320/correct .png
Tuttavia, se posso aggiungere una sola riga aggiunta di uno sfondo, allora la disposizione va completamente in tilt:
alt text http://dl.dropbox.com/u/299320/foobared .png
Il bit rilevante del layout XML è:
<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">
Letteralmente l'unica differenza tra questi due schermate è l'inclusione di android:background="@drawable/main_background"
. Ti do un cookie se mi può dare una mano qui:)
Soluzione
Per quanto riguarda il motivo per cui si verificano quello che sei con lo sfondo, può essere che la vostra immagine di sfondo in qualche modo viene coinvolto nella gravità, ma questa è solo una supposizione.
Per risolvere il problema, avvolgere tutta la cosa in un FrameLayout
. Effettuare il primo figlio del FrameLayout
essere un ImageView
con lo sfondo. Rendere il secondo figlio del FrameLayout
essere il vostro attributo esistente (sans LinearLayout
) android:background
. Dal momento che FrameLayout
e RelativeLayout
permettono impilamento, questo farà sì che il vostro LinearLayout apparire sopra l'immagine e dovrebbe darvi l'effetto visivo che cercate.