2010-02-04 8 views
0

Je viens de mettre à jour mon application et je reçois des plaintes bizarres de personnes qui la mettent à jour. Je reçois seulement des plaintes des personnes avec les téléphones androïdes non-stock (les téléphones que les fabricants ont modifiés ... téléphones de HTC, cliq, impulsion, etc.), d'autres téléphones aiment le Droid, le travail de Nexus bien. Mon application (Photo Frame Deluxe) contient une liste avec une vue d'image, une vue texte, une vue (spacer) et une case à cocher, toutes à la suite. Ce qui se passe sur les téléphones affectés, c'est que les lignes commencent à se chevaucher et cela coupe la moitié supérieure de tout. Mon code de mise en page pour cela est ci-dessous, je tire mes cheveux sur ce, ce que je pourrais avoir tort dans cette mise en page. Pourquoi cela fonctionne-t-il sur certains téléphones et pas sur d'autres? Toute aide serait appréciée.Listview Row Overlap Problème

Mise en ligne:

<?xml version="1.0" encoding="UTF-8"?> 
<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:orientation="horizontal"> 
<ImageView 
    android:id="@+id/photorowIcon" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_gravity="center_vertical" 
    android:paddingTop="10dp" 
    android:paddingBottom="10dp" 
    android:paddingRight="5dp" 
    /> 
<TextView 
    android:id="@+id/photorowText" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_gravity="center_vertical" 
    /> 
<View 
    android:layout_width="0px" 
    android:layout_height="wrap_content" 
    android:layout_weight="1"/> 
<CheckBox 
    android:id="@+id/photorowCheckBox" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_gravity="center_vertical" 
    android:focusable="false" 
    android:focusableInTouchMode="false" 
    /> 
</LinearLayout> 

Row mise en page est insérée dans:

<?xml version="1.0" encoding="UTF-8"?> 
<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:orientation="vertical"> 
<LinearLayout 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:background="@drawable/title1_gradient" 
    android:orientation="vertical"> 
<TextView 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="Select Photos to Display:" 
    android:textSize="20sp" 
    android:textStyle="bold" 
    android:textColor="#FFFFFFFF" 
    android:paddingLeft="5dp" 
    android:paddingRight="5dp" 
    android:paddingTop="5dp" 
    /> 
<TextView 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:id="@+id/folderName" 
    android:textSize="15sp" 
    android:textStyle="bold" 
    android:textColor="#FFFFFFFF" 
    android:paddingLeft="5dp" 
    android:paddingRight="5dp" 
    android:paddingBottom="5dp" 
    /> 
    <View 
     android:layout_width="fill_parent" 
     android:layout_height="1px" 
     android:background="#406C6C6C"/> 
    </LinearLayout> 
<ListView 
    android:id="@android:id/list" 
    android:layout_width="fill_parent" 
    android:layout_height="0px" 
    android:layout_weight="1" 
    android:drawSelectorOnTop="false" 
    android:paddingLeft="5dp" 
    android:paddingRight="5dp" 
    /> 
<LinearLayout 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:orientation="vertical" 
     android:layout_gravity="bottom">  
    <LinearLayout 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:orientation="horizontal" 
      android:layout_gravity="bottom" 
      android:background="#FF6C6C6C" 
      android:padding="5dp"> 
      <Button 
       android:layout_width="fill_parent" 
       android:layout_height="wrap_content" 
       android:id="@+id/ok" 
       android:text="OK"/> 
    </LinearLayout> 
</LinearLayout> 
</LinearLayout> 
+1

Avez-vous une capture d'écran de l'effet que vos utilisateurs voient? – CommonsWare

Répondre

0

Je ne serai pas en mesure d'identifier votre problème, mais je ne sais que mises en page (malheureusement!) Peuvent changer entre versions mineures d'Android. J'ai vu quelques problèmes allant de 1.5 à 1.6, spécifiquement avec des mises en page dans une liste. Encore plus problématique était le fait que l'émulateur n'émulait pas correctement, ce qui le rend très difficile à réparer. Je me souviens que cela avait à voir avec la gravité, donc je jouerais avec cette partie. Essayez également d'utiliser un RelativeLayout moins gourmand en ressources que les versions linéaires imbriquées.

Essayez également d'utiliser les outils de mise en page du SDK, layoutopt et Hiearhcy Viewer.

1

changement ur tag listView attribut

android:layout_height="fill_parent" 
3

J'ai eu le même problème. Il était évident sur 2 Verizon Eris, et dans le simulateur 1.5. Il ne se produit PAS dans un G1 (v1.6), un moto Droid (2.0.1), ou un simulateur 1.6+

Il s'est produit dans un ListView lié à une ListActivity, et dans un LinearLayout orienté verticalement. Dans les deux cas, je nourrissais RelativeLayouts dans chacun, et j'ai continué à perdre le dessus de

J'ai utilisé le hierarchyViewer, mucked avec chaque fichue chose, et tourné autour. Il m'est finalement apparu, après avoir réglé manuellement minHeight sur le RelativeLayout à quelque chose de plus grand que ce qui apparaissait, que le problème n'était pas seulement SIZING, mais SHIFTING. Tout dans le RelativeLayout était repoussé au dessus de la vue.

Cela m'a fait revisiter mentalement de Sandos réponse ci-dessus: "quelque chose à voir avec la gravité"

dans le RelativeLayout (logement chaque 'rangée' des listes), je mets:

android:gravity="center_vertical" 

Cela a fait une énorme différence.

Maintenant, mes lignes encore ressemblent plus étroit 1,5, mais ils sont utilisables, et je peux Persévérez