J'essaie de mettre en place une bulle de dialogue simple en utilisant un fichier de type ConstraintLayout
. C'est ce que j'essaie d'obtenir :
Cependant, wrap_content
ne fait pas ce que je veux. Il respecte les marges, mais s'étend en dehors des limites de la vue. Voici ma mise en page :
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:id="@+id/chat_message"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="16dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintHorizontal_bias="0"
tools:background="@drawable/chat_message_bubble"
tools:text="Lorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris sodales accumsan tortor at bibendum."
android:layout_marginStart="64dp"
android:layout_marginLeft="64dp"
android:layout_marginEnd="32dp"
android:layout_marginRight="32dp"
android:layout_marginTop="8dp"
android:layout_marginBottom="8dp" />
</android.support.constraint.ConstraintLayout>
Cela se traduit comme suit :
J'utilise com.android.support.constraint:constraint-layout:1.0.0-beta4
.
Est-ce que je fais quelque chose de mal ? S'agit-il d'un bogue ou simplement d'un comportement peu intuitif ? Puis-je obtenir le bon comportement en utilisant un ConstraintLayout
(Je sais que je peux utiliser d'autres mises en page. ConstrainLayout
spécifiquement).
0 votes
Pouvez-vous afficher la vue de texte avec sa disposition de contrainte parent ? comme vous le savez, les attributs de la disposition parent ont un grand impact sur l'enfant.
0 votes
Au fait, dans votre cas, je pense que le biais horizontal est le coupable. Essayez de supprimer la disposition à droite du biais.
1 votes
Un biais horizontal est nécessaire, sinon si la bulle est centrée. Sans disposition de droite à droite, la marge de droite ne sera pas prise en compte, ce qui n'est pas ce que nous voulons. J'ai essayé de les supprimer, comme vous l'avez conseillé, mais cela n'a pas aidé.
1 votes
Le problème est le biais horizontal 0 pour sûr. Je vais vérifier les solutions possibles et les poster dès que possible car je travaille également sur quelque chose de similaire sur la mise en page des contraintes.
0 votes
@MarcinJedynak désolé si c'est hors sujet, mais où avez-vous obtenu la bulle de chat ? C'est super.
1 votes
La bulle de chat @nmu vient de
tools:background="@drawable/chat_message_bubble"
. Pour l'implémenter, vous devez créer le fichier chat_message_bubble.xml dans le dossier drawable puis ajouter ce code :<shape xmlns:android="http://schemas.android.com/apk/res/android"> <solid android:color="#FB4382"/> <corners android:radius="10dip"/> </shape>
0 votes
Pour moi, cela ne fonctionne pas sur les vues chaînées. Ainsi, une vue a un contenu enveloppant, puis obtient tout l'espace de l'écran de la chaîne entière :(