android: layout_marginBottom ne semble pas fonctionner correctement dans 2.2 (Froyo)
J'ai cette ImageView bloc à l'intérieur d'une Relative mise en page:
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_marginBottom="50dip"
android:layout_marginLeft="81dip"
android:src="@drawable/swipehelp"
/>
Ce dessine l'image à droite, où il est attendu à la fois normale et haute densité de résolution des écrans sur Android 1.6 toutefois sur 2.2, il semble ignorer le layout_marginBottom et toujours dessiner l'image aligné tout le chemin en bas. Quelqu'un a déjà vu ça, et si oui connaissez-vous une solution?
Edit 1:
Il se trouve à l'intérieur d'un RelativeLayout déclaré ainsi:
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/excusescreen"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/woodbg">
Edit 2:
Voici la mise en page complète de code:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/excusescreen"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/woodbg">
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/imlateTopBar"
android:layout_width="fill_parent"
android:layout_height="44dip"
android:background="@drawable/topandbottombars"
android:layout_alignParentTop="true"
>
<ImageView
android:id="@+id/excHomeBtn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="5dip"
android:layout_marginTop="7dip"
android:src="@drawable/catexcusehomebtn"
>
</ImageView>
<ImageView
android:id="@+id/excBackToCatsBtn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="10dip"
android:layout_marginTop="7dip"
android:src="@drawable/backtocats"
>
</ImageView>
</LinearLayout>
<ViewFlipper
android:id="@+id/excuses"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginTop="50dip"
>
</ViewFlipper>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/imlateTopBar"
android:layout_width="fill_parent"
android:layout_height="44dip"
android:background="@drawable/topandbottombars"
android:layout_alignParentBottom="true"
>
<ImageView
android:id="@+id/emailItBtn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="5dip"
android:layout_marginTop="7dip"
android:src="@drawable/emailit"
>
</ImageView>
<TextView
android:id="@+id/numExcusesText"
android:layout_width="100dip"
android:layout_height="30dip"
android:layout_marginLeft="5dip"
android:layout_marginTop="7dip"
android:textColor="#66ffffff"
android:gravity="center"
android:textSize="18dip"
android:textStyle="bold"
android:text="1/13"
>
</TextView>
<ImageView
android:id="@+id/shareItBtn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="5dip"
android:layout_marginTop="7dip"
android:src="@drawable/shareit"
>
</ImageView>
</LinearLayout>
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_marginBottom="50dip"
android:layout_marginLeft="81dip"
android:src="@drawable/swipehelp"
/>
</RelativeLayout>
Modifier 3
source d'informationauteur LoneWolfPR | 2010-11-04
Vous devez vous connecter pour publier un commentaire.
Dans le
FrameLayout
ajouter unView
avec les éléments suivants:Maintenant, dans le but de résoudre le
layout_marginBottom
l'utilisation ci-dessus:Ok, donc après beaucoup de recherche j'ai trouvé un lien à cette Question qui remonte à 09 mais les commentaires à partir de 2010 montrent beaucoup de problèmes avec alignParentBottom en 2.2.
http://code.google.com/p/android/issues/detail?id=1394
J'ai donc fait une solution de contournement en mettant le tout dans un FrameLayout et fait l'ImageView un enfant de l'extérieur de mon RelativeLayout et placé avec le layout_gravity. Qui a fait le tour et de le faire fonctionner dans toutes les versions. Voici le code final:
C'était la même chose pour Android 1.6 pour moi jusqu'à ce que j'ai changé le
layout_height
àfill_parent
sur le ultrapériphériques 'RelativeLayout`Apparemment il ne peut pas obtenir les limites de corriger lors de paramètres à
wrap_content
. Si il n'y a pas de raison particulière pour avoir leRelativeLayout
s largeur et la hauteur de l'envelopper de son contenu, je dirais que le spécifier comme ça.Si vous ne voulez pas ajouter un autre point de Vue, vous pouvez utiliser un InsetDrawable avec
android:insetBottom
ensemble.Nous avons eu le même problème et a utilisé un LinearLayout positionné avec ParentBottom, ce qui donne une marge, et de mettre l'image/bouton/vue de l'intérieur. L'utilisation d'une marge sur la cible au lieu d'un rembourrage sur le LinearLayout fonctionne aussi bien btw.