2010-08-10 5 views
2

Je suis en train d'essayer de faire un "Chat View" avec des bulles comme sur l'application iPhone SMS. Cette ligne est que j'ai fait dans l'éditeur xml:Position du bouton dans android

http://img44.imageshack.us/i/xml.png/

Mais quand je lance la ma demande, je reçois ceci:

http://img59.imageshack.us/i/resultt.png/

Je ne sais pas pourquoi le bouton répondre est si loin ma frontière de mise en page relative! Voici le code xml de la bulle:

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_height="wrap_content" 
    android:background="@drawable/bulle_chat" 
    android:layout_width="fill_parent"> 
    <ImageView android:layout_alignParentLeft="true" 
     android:layout_alignParentTop="true" 
     android:layout_height="40sp" 
     android:layout_width="40sp" 
     android:id="@+id/ImageViewPhoto" 
     android:scaleType="fitXY" 
     android:layout_margin="8sp" 
     android:src="@drawable/lady"> 
    </ImageView> 
    <TextView android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_toRightOf="@+id/ImageViewPhoto" 
     android:layout_alignTop="@+id/ImageViewPhoto" 
     android:id="@+id/TextViewPseudo" 
     android:text="Pseudo" 
     android:textColor="#242424" 
     android:textStyle="bold"> 
    </TextView> 
    <TextView android:layout_below="@id/TextViewPseudo" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:id="@+id/TextViewDate" 
     android:text="Date" 
     android:layout_toRightOf="@+id/ImageViewPhoto"> 
    </TextView> 
    <Button android:layout_alignParentRight="true" 
     android:layout_alignParentTop="true" 
     android:id="@+id/ButtonAnswer" 
     android:layout_height="40sp" 
     android:layout_width="40sp" 
     android:layout_margin="8sp"> 
    </Button> 
    <TextView android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_below="@+id/ImageViewPhoto" 
     android:layout_alignLeft="@+id/ImageViewPhoto" 
     android:textColor="#000000" 
     android:text="BlbalblablbalbalbalbalbalablabalbalablaballabalbBlbalblablbalbalbalbalbalablabalbalablaballabalbalbalaBlbalblablbalbalbalbalbalablabalbalablaballabalbalbalablablaalbalabla" 
     android:id="@+id/TextViewMessage" 
     android:layout_alignRight="@+id/ButtonAnswer" 
     android:paddingBottom="15sp"> 
    </TextView> 
</RelativeLayout> 

Et ceci est la méthode getView adaptateur() (pseudo = pseudo):

public View getView(int position, View convertView, ViewGroup parent) { 
    LayoutInflater inflater = ctx.getLayoutInflater(); 
    View v = inflater.inflate(R.layout.chat_row, null); 
    TextView pseudo = (TextView)v.findViewById(R.id.TextViewPseudo); 
    TextView date = (TextView)v.findViewById(R.id.TextViewDate); 
    TextView message = (TextView)v.findViewById(R.id.TextViewMessage); 
    ImageView icon = (ImageView)v.findViewById(R.id.ImageViewPhoto); 
    Button b = (Button)v.findViewById(R.id.ButtonAnswer); 
    b.setId(position); 
    b.setOnClickListener((OnClickListener) ctx); 

    pseudo.setText(listMessages.get(position).getPseudo()); 
    pseudo.setTextColor(0xFF000000); 
    date.setText(listMessages.get(position).getDate()); 
    date.setTextColor(0xFF000000); 
     message.setText(listMessages.get(position).getText()); 
    message.setTextColor(0xFF000000); 
    message.setGravity(Gravity.CLIP_HORIZONTAL); 

    if (listMessages.get(position).getThumb()!=null){ 
     icon.setImageBitmap(listMessages.get(position).getThumb()); 
    } else { 
     icon.setImageResource(R.drawable.unknown); 
    } 
    return v; 
} 

Comme vous pouvez le voir, je mis la disposition des parents d'alignement juste et haut à vrai mais ça ne marche pas. Autre problème: si je veux changer le fond de mon bouton, celui-ci disparaitra!

Merci pour votre aide (et désolé pour mon anglais)!

+0

ne peux pas voir vos captures d'écran – WarrenFaith

Répondre

1

On dirait que vous définissez une marge pour contourner le bouton entier. Essayez de faire juste une marge pour le haut et aucun pour le droit. Aussi, je pourrais me tromper, mais n'est pas sp juste pour le texte et dp est pour les largeurs et autres joyeusetés?

Go de

android:layout_margin="8sp" 

à

android:layout_marginTop="8sp" 
+0

j'ai jamais essayé cela, mais qui ne fonctionne pas ... –

+0

On dirait que pour une raison quelconque la fin de la Le volet de présentation ou d'affichage, peu importe comment vous voulez l'appeler, se termine avant que la bulle de message ne se termine sur la droite. Cette vue est-elle un enfant d'un autre point de vue? On dirait que ça pourrait être plus gros. – Mike

+0

Oui, je l'utilise dans un ListView, et ce discours est pour les lignes de la liste. –